Android System WebView es un componente del sistema para el sistema operativo (SO) Android que permite que las aplicaciones de Android muestren contenido web directamente dentro de una aplicación.
Hay dos formas de abrir contenido web en un dispositivo Android: usando un navegador web tradicional o una aplicación de Android que incluya WebView en el diseño.
Android WebView se basa en el motor Chromium de código abierto. Este es el mismo motor que impulsa Google Chrome.
Un desarrollador que quiera agregar funcionalidad de navegador a una aplicación puede incluir la biblioteca WebView y crear una instancia de una clase WebView. Básicamente, este enfoque incorpora un navegador dentro de la aplicación para hacer cosas como representar páginas web y ejecutar scripts.
En el pasado, WebView estaba estrechamente vinculado con el sistema operativo y solo se actualizaba cuando se lanzaba una nueva versión del sistema operativo. Este cronograma de lanzamiento más lento hizo posible que un exploit que se solucionó en Chrome aún no se corrigiera en WebView. Ahora es una aplicación discreta que se puede actualizar a través de la tienda de aplicaciones Google Play.
Todos los sistemas operativos tienen un componente WebView equivalente. En Windows 11, es Edge WebView2, y en iOS y macOS, es WKWebView.
¿Por qué se necesita WebView del sistema Android?
WebView del sistema Android permite que las aplicaciones muestren contenido web en una aplicación en lugar de transportar al usuario a otro navegador. Los desarrolladores de Android utilizan WebView cuando quieren mostrar páginas web o contenido de lenguaje de marcado de hipertexto en una aplicación de Google u otra aplicación.
Los siguientes son ejemplos de cómo se puede utilizar WebView para incrustar páginas web:
- Cuando los usuarios hacen clic en un enlace de política de privacidad en una pantalla en una aplicación WebView del sistema Android, la aplicación abre una página web con el contenido de la política de privacidad en lugar de llevarlos a un navegador.
- Los usuarios utilizan una cuenta de redes sociales para iniciar sesión en una aplicación. Los desarrolladores utilizan WebView para incrustar la ventana de inicio de sesión de una aplicación de redes sociales dentro de su aplicación y brindar a los usuarios la opción de cómo iniciar sesión. En lugar de codificar una función de inicio de sesión desde cero, WebView permite a los desarrolladores importar la función de inicio de sesión social.
- WebView se utiliza para tomar un sitio web existente y presentarlo como una aplicación nativa. Usar WebView de esta manera es un método de bajo código para construir aplicaciones híbridas que libera a los desarrolladores de tener que codificar aplicaciones nativas desde cero.
Los actores malintencionados pueden utilizar WebView para explotar dispositivos, utilizando tácticas como secuencias de comandos entre sitios. Por eso es importante que WebView del sistema Android se mantenga actualizado.
Historia del sistema Android WebView
Las primeras versiones de WebView se integraron como parte del sistema operativo principal Android. Los usuarios sólo podían actualizar WebView a través de actualizaciones del sistema más grandes. Debido a que cada fabricante de dispositivos lanza sus propias actualizaciones del sistema, a veces hubo una larga espera entre el momento en que Google publicó el código para corregir una falla en WebView y el momento en que un fabricante lanzó la actualización.
Con el lanzamiento de Android 5, Google separó WebView del sistema operativo principal. Con este cambio, las actualizaciones de WebView podrían distribuirse a través de la aplicación Google Play Store y los usuarios podrían actualizar WebView independientemente del sistema operativo. Si se encontraba un problema en el componente WebView, Google implementaría una solución de error que los usuarios podrían instalar sin tener que actualizar Android por completo.
Google combinó WebView con Google Chrome para las versiones 7, 8 y 9 de Android. Sin embargo, con Android 10, WebView volvió a ser un componente independiente. Los usuarios pueden actualizar WebView en Android 10 o superior a través de Google Play. A veces, esto requiere que eliminen los datos almacenados en la caché de la aplicación antes de descargar la actualización.
Google ya no proporciona parches para las vulnerabilidades encontradas en versiones anteriores (4.3 y anteriores) de Android. Para proteger los dispositivos de ataques que podrían explotar las capacidades de WebView, la compañía recomienda que los usuarios de Android ejecuten la última versión del sistema operativo y actualicen WebView cuando se les solicite.
¿Es seguro desinstalar WebView del sistema Android?
No es seguro desinstalar WebView del sistema Android. Es imposible desinstalar completamente las versiones recientes de WebView porque es software del sistema y viene preinstalado en los dispositivos Android. Debido a que WebView carga contenido del sitio web, eliminar las actualizaciones de WebView eliminará los parches de seguridad recientes y podría dejar el sistema vulnerable a ataques de software malicioso.
Sin embargo, se puede desactivar en determinadas versiones de Android. Es posible que los usuarios quieran desactivar WebView por los siguientes motivos:
- No están familiarizados con la aplicación WebView del sistema Android y la confunden con software espía malicioso o bloatware inútil.
- Consume más recursos de los que les gustaría.
- Tienen una mala experiencia de usuario, lo que ocurre ocasionalmente porque WebView puede estar mal integrado en una aplicación.
- WebView no funciona de manera consistente en diferentes versiones de Android.
Google no recomienda desactivar WebView; los usuarios deben mantenerlo activado y actualizado. Sin embargo, es posible que los usuarios que ejecutan Android 7, 8 y 9 quieran desactivarlo para conservar la potencia de procesamiento o la memoria, o para evitar fallas relacionadas con errores de actualización. Los usuarios pueden desactivar WebView del sistema Android de forma segura en las siguientes versiones de Android sin experimentar consecuencias adversas:
- Android 7 Turrón.
- Android 8 Oreo.
- Android 9 Pie.
Siga estos pasos para desactivar WebView en las tres versiones enumeradas anteriormente:
- Vaya a Configuración > Aplicaciones/aplicación > Más > Mostrar sistema.
- Desplázate y selecciona Vista web de Android.
- Grifo Desactivar.
En Android 7, 8 y 9, Google Chrome maneja las funciones de navegación integradas. En otras versiones del sistema operativo Android, el rendimiento de la aplicación web podría verse afectado sin WebView habilitado. Operar sin WebView también puede presentar un riesgo de seguridad porque desactiva la configuración de seguridad predeterminada de Android para incrustar contenido web en aplicaciones. Los desarrolladores pueden utilizar código de terceros en lugar de WebView o navegadores alternativos de Android para realizar la misma tarea, aunque el código de terceros podría tener más vulnerabilidades integradas.
Cómo borrar datos de WebView
Android WebView tiene caché y datos de aplicaciones. Esto podría almacenar páginas cargadas y cookies. Aunque generalmente no es necesario, borrar estos datos puede liberar espacio de almacenamiento o resolver algunos problemas. Dado que otras aplicaciones pueden utilizar estos datos, es posible que los usuarios deban volver a autenticarse o configurar las aplicaciones nuevamente después de borrarlos.
- Vaya a Configuración > Aplicaciones > Ver todo.
- Desplázate y selecciona Vista web de Android.
- Grifo Almacenamiento y caché.
- Grifo Borrar almacenamiento o Borrar caché.
Cómo agregar WebView a una aplicación
Para agregar WebView a una aplicación, un desarrollador primero agrega un componente WebView a su archivo de lenguaje de marcado extensible (XML), luego le asigna una identificación y llama al cargarURL() funcionar en él.
JournalDev, ahora parte de DigitalOcean, proporciona el siguiente ejemplo de cómo insertar WebView en un archivo XML en Android Studio usando el lenguaje de programación Kotlin:
<WebView android:id="@+id/webview"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Para darle una identificación, un desarrollador escribiría lo siguiente o algo similar:
WebView = (webView) findViewById(R.id.webview);
Y, finalmente, para pasar la URL de una página web como argumento en la aplicación, el desarrollador escribiría lo siguiente:
webView.loadUrl("https://www.example.com");
El método utilizado para agregar WebView puede diferir ligeramente según el idioma utilizado para escribir la aplicación. WebView se puede integrar tanto en aplicaciones de Android como en aplicaciones de iOS en iPhones y iPads.
JavaScript en WebView
JavaScript en WebView está deshabilitado de forma predeterminada. Esto significa que las páginas web que contienen referencias de JavaScript no funcionarán correctamente. Para habilitar JavaScript, un desarrollador que use la línea de comando de Kotlin agregaría el siguiente código a la instancia de WebView:
getSettings().setJavaScriptEnabled(true);
A los usuarios finales les puede resultar útil utilizar JavaScript con Android WebView para que determinadas aplicaciones funcionen según lo previsto. Para habilitar JavaScript en WebView en Chrome, siga estos seis pasos:
- Haga clic en los tres puntos apilados junto a la barra de URL en el navegador.
- Seleccionar Ajustes en el menú desplegable.
- bajo el Avanzado encabezado, seleccione Configuración del sitio.
- Seleccionar javascript.
- Mueva el interruptor hacia la derecha para activar JavaScript.
- Actualiza el navegador.
En algunos casos, WebView puede ahorrar tiempo y energía a los desarrolladores al incorporar código ya existente en una aplicación. Descubra cómo funciona el desarrollo low-code y cómo puede beneficiar a la empresa.