SDK Multiplataforma en C logo

SDK Multiplataforma en C

WebView

❮ Anterior
Siguiente ❯

Funciones

WebView*webview_create (void)
voidwebview_OnFocus (...)
voidwebview_size (...)
voidwebview_navigate (...)
voidwebview_back (...)
voidwebview_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.


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.

Árbol de dependencias de WebView.
Figura 2: Dependencias nativas de WebView.

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.

Instalación de WebKit2 en Ubuntu.
 
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).

Captura de la aplicación WebHello con soporte WebView deshabilitado.
Figura 3: Aplicación con el soporte Web deshabilitado.
Deshabilitar el soporte Web, no generará errores de compilación ni enlace en aplicaciones que utilicen el WebView.
❮ Anterior
Siguiente ❯

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 '\0'.


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.

❮ Anterior
Siguiente ❯