WebView
Funciones
WebView* | webview_create (void) |
void | webview_OnFocus (...) |
void | webview_size (...) |
void | webview_navigate (...) |
void | webview_back (...) |
void | webview_forward (...) |
Un control WebView nos permitirá incrustar contenido Web en nuestra aplicación. Se comportará de igual forma que otros controles de vista como View o TextView en lo relativo a maquetación o redimensionado, mostrando un navegador totalmente funcional en su área cliente (Figura 1). En ¡Hola WebView! tienes una aplicación de ejemplo.
- Utiliza webview_create para crear una vista web.
- Utiliza webview_navigate para mostrar el contenido de una URL.
- Utiliza webview_back para ir a la página anterior.
- Utiliza webview_forward para ir a la página siguiente.
1. Dependencias de WebView
WebView depende de tecnologías nativas en cada sistema operativo: Edge:WebView2 en Windows, WebKit2 en GTK/Linux y WKWebView en macOS (Figura 2). El build system de NAppGUI, se encargará de gestionar las dependencias por nosotros de forma automática. No obstante, debes tener en cuenta estos puntos, antes de utilizar este control en tus aplicaciones de forma exitosa.
1.1. WebView en Windows
- En la carpeta
prj/depend/web/win
están las cabeceras y librerías estáticas de WebView2. - Se han obtenido desde este paquete de NuGet.
- Existen problemas al compilar en modo Debug desde VS2017 y VS2015. Sin embargo, en modo Release, las aplicaciones funcionan sin problema utilizando estas versiones de Visual Studio. Más información aquí.
- Visual Studio 2013 y anteriores no soportan la compilación del WebView2.
- MinGW no soporta la compilación del WebView2.
- Se recomienda el uso de VS2019 o VS2022 para generar aplicaciones con WebView2.
- WebView2 solo funciona en Windows 10 y Windows 11.
1.2. WebView en macOS
No debes hacer nada especial para compilar el WebView en macOS. CMake enlazará automáticamente com WebKit.framework
. Por el momento, este soporte está disponible para macOS 10.10 Yosemite y posteriores, ya que WKWebView
no está presente en distribuciones anteriores.
1.3. WebView en Linux
Deberemos instalar las librerías de desarrollo de WebKit2 en nuestro sistema para que CMake pueda habilitar el soporte Web en NAppGUI.
|
sudo apt-get install libwebkit2gtk-4.1-dev // Ubuntu 24 sudo apt-get install libwebkit2gtk-4.1-dev // Ubuntu 22 sudo apt-get install libwebkit2gtk-4.0-dev // Ubuntu 20 sudo apt-get install libwebkit2gtk-4.0-dev // Ubuntu 18 sudo apt-get install libwebkit2gtk-4.0-dev // Ubuntu 16 sudo apt-get install libwebkit2gtk-3.0-dev // Ubuntu 14 |
El soporte WebKit2 no está disponible en Ubuntu 12 y anteriores.
2. Deshabilitar WebView
Si el script CMake de NAppGUI no detecta en tu sistema las librería nativas requeridas por el control WebView
, lo deshabilitará. También puedes hacerlo explícitamente mediante este parámetro de CMake.
|
cmake -DNAPPGUI_WEB=NO -S . -B build |
Al deshabilitar el soporte Web, las aplicaciones que hagan uso del control WebView
compilarán y se podrán ejecutar. La diferencia es que no mostrarán contenido Web en el control, tan solo un área vacía (Figura 3).
Deshabilitar el soporte Web, no generará errores de compilación ni enlace en aplicaciones que utilicen el WebView.
webview_create ()
Crea una vista Web.
WebView* webview_create(void);
Retorna
La vista Web.
webview_OnFocus ()
Establece un manejador para el foco del teclado.
void webview_OnFocus(WebView *view, Listener *listener);
view | La vista. |
listener | Función callback que se llamará cuando se reciba o se pierda el foco del teclado. |
Observaciones
Ver Eventos GUI.
webview_size ()
Establece el tamaño por defecto de la vista.
void webview_size(WebView *view, const S2Df size);
view | La vista. |
size | El tamaño. |
Observaciones
Corresponde al Dimensionado natural del control. Por defecto 245x144.
webview_navigate ()
Carga una URL en la vista Web.
void webview_navigate(WebView *view, const char_t *url);
view | La vista. |
url | URL a cargar, cadena C UTF8 terminada en carácter nulo |
webview_back ()
Retrocede a la pagina anterior de la pila del navegador.
void webview_back(WebView *view);
view | La vista. |
webview_forward ()
Avanza a la pagina siguiente de la pila del navegador.
void webview_forward(WebView *view);
view | La vista. |