inicinado
This commit is contained in:
67
README.md
Normal file
67
README.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Benedito Globo WebView App
|
||||||
|
|
||||||
|
Um aplicativo WebView simples criado em Vala que carrega o site https://beneditoglobo.com.br
|
||||||
|
|
||||||
|
## Recursos
|
||||||
|
|
||||||
|
- 🌐 Navegador web completo com WebKit
|
||||||
|
- ⬅️ ➡️ Botões de navegação (voltar/avançar)
|
||||||
|
- 🔄 Botão de recarregar página
|
||||||
|
- 📝 Barra de endereço editável
|
||||||
|
- 🪟 Janela de 1200x800 pixels
|
||||||
|
|
||||||
|
## Dependências
|
||||||
|
|
||||||
|
Para compilar e executar este aplicativo, você precisa instalar as seguintes dependências:
|
||||||
|
|
||||||
|
### Ubuntu/Debian
|
||||||
|
```bash
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install valac libgtk-3-dev libwebkit2gtk-4.1-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fedora
|
||||||
|
```bash
|
||||||
|
sudo dnf install vala gtk3-devel webkit2gtk3-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arch Linux
|
||||||
|
```bash
|
||||||
|
sudo pacman -S vala gtk3 webkit2gtk
|
||||||
|
```
|
||||||
|
|
||||||
|
## Compilação
|
||||||
|
|
||||||
|
Para compilar o aplicativo, execute:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
valac --pkg gtk+-3.0 --pkg webkit2gtk-4.1 webview-app.vala -o benedito-globo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Execução
|
||||||
|
|
||||||
|
Após compilar, execute o aplicativo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./benedito-globo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Como usar
|
||||||
|
|
||||||
|
1. O aplicativo abre automaticamente com o site https://beneditoglobo.com.br carregado
|
||||||
|
2. Use os botões de navegação para voltar/avançar no histórico
|
||||||
|
3. Clique no botão de recarregar para atualizar a página
|
||||||
|
4. Digite uma nova URL na barra de endereço e pressione Enter ou clique em "Ir"
|
||||||
|
|
||||||
|
## Estrutura do Código
|
||||||
|
|
||||||
|
- **BeneditoGloboApp**: Classe principal que herda de `Gtk.Window`
|
||||||
|
- **webview**: Componente WebKit.WebView para renderizar páginas web
|
||||||
|
- **toolbar**: Barra de ferramentas com controles de navegação
|
||||||
|
- **load_url()**: Método para carregar URLs (adiciona https:// automaticamente se necessário)
|
||||||
|
|
||||||
|
## Tecnologias Utilizadas
|
||||||
|
|
||||||
|
- **Vala**: Linguagem de programação orientada a objetos
|
||||||
|
- **GTK+ 3**: Toolkit para interface gráfica
|
||||||
|
- **WebKit2GTK**: Engine de renderização web
|
||||||
BIN
benedito-globo
Executable file
BIN
benedito-globo
Executable file
Binary file not shown.
11
benedito-globo.desktop
Executable file
11
benedito-globo.desktop
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Benedito Globo
|
||||||
|
Comment=Navegador WebView para beneditoglobo.com.br
|
||||||
|
Exec=/home/manoiese/Área de trabalho/teste/benedito-globo
|
||||||
|
Icon=web-browser
|
||||||
|
Terminal=false
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
||||||
|
StartupNotify=true
|
||||||
23
compile.sh
Executable file
23
compile.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script de compilação para o Benedito Globo WebView App
|
||||||
|
|
||||||
|
echo "🔨 Compilando Benedito Globo WebView App..."
|
||||||
|
|
||||||
|
# Verificar se o valac está instalado
|
||||||
|
if ! command -v valac &> /dev/null; then
|
||||||
|
echo "❌ Erro: valac não está instalado"
|
||||||
|
echo "Execute: sudo apt-get install valac libgtk-3-dev libwebkit2gtk-4.1-dev"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compilar o aplicativo
|
||||||
|
valac --pkg gtk+-3.0 --pkg webkit2gtk-4.1 webview-app.vala -o benedito-globo
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "✅ Compilação concluída com sucesso!"
|
||||||
|
echo "Execute o aplicativo com: ./benedito-globo"
|
||||||
|
else
|
||||||
|
echo "❌ Erro na compilação"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
52
install-deps.sh
Executable file
52
install-deps.sh
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script de instalação de dependências para o Benedito Globo WebView App
|
||||||
|
|
||||||
|
echo "📦 Instalando dependências necessárias..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Detectar distribuição Linux
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
OS=$ID
|
||||||
|
else
|
||||||
|
echo "❌ Não foi possível detectar a distribuição Linux"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $OS in
|
||||||
|
ubuntu|debian|linuxmint|pop)
|
||||||
|
echo "🐧 Detectado: $OS"
|
||||||
|
echo "Instalando: valac, libgtk-3-dev, libwebkit2gtk-4.1-dev"
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y valac libgtk-3-dev libwebkit2gtk-4.1-dev
|
||||||
|
;;
|
||||||
|
fedora|rhel|centos)
|
||||||
|
echo "🎩 Detectado: $OS"
|
||||||
|
echo "Instalando: vala, gtk3-devel, webkit2gtk3-devel"
|
||||||
|
sudo dnf install -y vala gtk3-devel webkit2gtk3-devel
|
||||||
|
;;
|
||||||
|
arch|manjaro)
|
||||||
|
echo "🏔️ Detectado: $OS"
|
||||||
|
echo "Instalando: vala, gtk3, webkit2gtk"
|
||||||
|
sudo pacman -S --noconfirm vala gtk3 webkit2gtk
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "⚠️ Distribuição não reconhecida: $OS"
|
||||||
|
echo "Por favor, instale manualmente:"
|
||||||
|
echo " - valac (compilador Vala)"
|
||||||
|
echo " - GTK+ 3 development files"
|
||||||
|
echo " - WebKit2GTK development files"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo ""
|
||||||
|
echo "✅ Dependências instaladas com sucesso!"
|
||||||
|
echo "Agora você pode compilar o aplicativo com: ./compile.sh"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "❌ Erro ao instalar dependências"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
109
webview-app.vala
Normal file
109
webview-app.vala
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
using Gtk;
|
||||||
|
using WebKit;
|
||||||
|
|
||||||
|
public class BeneditoGloboApp : Gtk.Window {
|
||||||
|
private WebKit.WebView webview;
|
||||||
|
private Gtk.Entry url_entry;
|
||||||
|
private Gtk.Button back_button;
|
||||||
|
private Gtk.Button forward_button;
|
||||||
|
private Gtk.Button reload_button;
|
||||||
|
|
||||||
|
public BeneditoGloboApp() {
|
||||||
|
this.title = "Benedito G lobo";
|
||||||
|
this.set_default_size(1200, 800);
|
||||||
|
this.window_position = WindowPosition.CENTER;
|
||||||
|
this.destroy.connect(Gtk.main_quit);
|
||||||
|
|
||||||
|
// Create main vertical box
|
||||||
|
var vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
|
||||||
|
|
||||||
|
// Create toolbar
|
||||||
|
var toolbar = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 5);
|
||||||
|
toolbar.margin = 5;
|
||||||
|
|
||||||
|
// Navigation buttons
|
||||||
|
back_button = new Gtk.Button.from_icon_name("go-previous", Gtk.IconSize.BUTTON);
|
||||||
|
back_button.clicked.connect(() => {
|
||||||
|
webview.go_back();
|
||||||
|
});
|
||||||
|
|
||||||
|
forward_button = new Gtk.Button.from_icon_name("go-next", Gtk.IconSize.BUTTON);
|
||||||
|
forward_button.clicked.connect(() => {
|
||||||
|
webview.go_forward();
|
||||||
|
});
|
||||||
|
|
||||||
|
reload_button = new Gtk.Button.from_icon_name("view-refresh", Gtk.IconSize.BUTTON);
|
||||||
|
reload_button.clicked.connect(() => {
|
||||||
|
webview.reload();
|
||||||
|
});
|
||||||
|
|
||||||
|
// URL entry
|
||||||
|
url_entry = new Gtk.Entry();
|
||||||
|
url_entry.set_text("https://beneditoglobo.com.br");
|
||||||
|
url_entry.activate.connect(() => {
|
||||||
|
load_url(url_entry.get_text());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Go button
|
||||||
|
var go_button = new Gtk.Button.with_label("Ir");
|
||||||
|
go_button.clicked.connect(() => {
|
||||||
|
load_url(url_entry.get_text());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add widgets to toolbar
|
||||||
|
toolbar.pack_start(back_button, false, false, 0);
|
||||||
|
toolbar.pack_start(forward_button, false, false, 0);
|
||||||
|
toolbar.pack_start(reload_button, false, false, 0);
|
||||||
|
toolbar.pack_start(url_entry, true, true, 0);
|
||||||
|
toolbar.pack_start(go_button, false, false, 0);
|
||||||
|
|
||||||
|
// Create WebView
|
||||||
|
webview = new WebKit.WebView();
|
||||||
|
|
||||||
|
// Update URL entry when page loads
|
||||||
|
webview.load_changed.connect((load_event) => {
|
||||||
|
if (load_event == WebKit.LoadEvent.COMMITTED) {
|
||||||
|
url_entry.set_text(webview.get_uri());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update button sensitivity
|
||||||
|
back_button.sensitive = webview.can_go_back();
|
||||||
|
forward_button.sensitive = webview.can_go_forward();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Create scrolled window for webview
|
||||||
|
var scrolled = new Gtk.ScrolledWindow(null, null);
|
||||||
|
scrolled.add(webview);
|
||||||
|
|
||||||
|
// Add widgets to main box
|
||||||
|
vbox.pack_start(toolbar, false, false, 0);
|
||||||
|
vbox.pack_start(scrolled, true, true, 0);
|
||||||
|
|
||||||
|
this.add(vbox);
|
||||||
|
|
||||||
|
// Load initial URL
|
||||||
|
load_url("https://beneditoglobo.com.br");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void load_url(string url) {
|
||||||
|
string final_url = url;
|
||||||
|
|
||||||
|
// Add https:// if no protocol is specified
|
||||||
|
if (!url.has_prefix("http://") && !url.has_prefix("https://")) {
|
||||||
|
final_url = "https://" + url;
|
||||||
|
}
|
||||||
|
|
||||||
|
webview.load_uri(final_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int main(string[] args) {
|
||||||
|
Gtk.init(ref args);
|
||||||
|
|
||||||
|
var app = new BeneditoGloboApp();
|
||||||
|
app.show_all();
|
||||||
|
|
||||||
|
Gtk.main();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user