En el desarrollo de una App Híbrida, mediante el uso del WebView para mostrar las páginas web de un WordPress apareció un problema bastante extraño a priori.

WordPress estaba utilizando el Plugin Slider Revolution para mostrar una fantástico Slider en el inicio de la página.

La situación es que en el navegador, tanto en el ordenador como en el móvil el slider carga perfectamente y se ve.

Pero en el WebView de la aplicación, directamente no aparecía el Slider además, se estaba teniendo errores de representación con los Favicons.

La aplicación se está programando en Klotin mediante Android Studio.

El código aquí expuesto es para Klotin, pero se puede usar la misma solución si utilizas Java, mediante la sintaxis de Java.

En el Navegador del Ordenador y Móvil
En la Aplicación mediante WebView

Depurar WebView en Edge o Chorme

Lo primero que se hizo fue buscar el problema mediante la consola de depuración que tiene el navegador Edge (también Chrome).

edge://inspect/#devices

De esa forma se puede acceder al depurador y ver las página cargada en el WebView de la aplicación, importante, para que el navegador pueda depurar el WebView es necesario añadir la siguiente instrucción para permitir la depuración.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        WebView.setWebContentsDebuggingEnabled(true)
}

Pulsando sobre inspect sobre la página cargada es posible ver el depurador e intentar indagar un poco por el problema.

Depurador para dispositivos de Microsoft Edge

Solucionar errores de JavaScript

Tras examinar la consola y todo el código se llegó a la conclusión de que el JavaScript no estaba cargando correctamente, y esto tiene sentido, ya que el WebView por defecto no carga el JavaScript.

Por lo cual activando la carga del JavaScript en el WebView parecía que el problema se iba a solucionar:

binding.webViewPrincipal.settings.javaScriptEnabled = true

Tras añadir activar el JavaScript se obtuvo una mejora, ya al menos cargaba el contenedor del Slider, es decir, donde debería de aparecer, aunque todavía no mostraba correctamente las imágenes.

WebView App
Depurador de Microsoft Edge

Ahora el depurador muestra una serie de errores de JavaScript, por los mensajes de error todo indicaba a un error con el DOM.

También con algunas características de HTML5, por lo cual todo nos llevo a la conclusión.

Era necesario activar alguna característica adicional en el WebView.

Solucionar errores del DOM

Tras investigar, determinamos que había una característica desactivada por defecto en WebView encargada del almacenamiento del DOM, que por defecto está desactivado.

Por lo cual, era necesario añadir también la siguiente instrucción en el código:

binding.webViewPrincipal.settings.domStorageEnabled = true

Al probar, ya por fin teníamos el Slider funcionando correctamente en el WebView, a la vez que se habrá arreglado muchísimos problemas que vengan de tener desactivadas estas opciones.

Si quieres información adicional puedes visitar el siguiente artículo: https://www.flipandroid.com/qu-significa-enable-dom-storage-api.html