Cómo mejorar la compatibilidad de WebView

Las instituciones educativas usan productos de filtrado de contenido para evitar que sus usuarios accedan a contenido inapropiado en sus Chromebooks. Existen varias formas en que los usuarios pueden salir de este entorno de pruebas de contenido y acceder a contenido al que, de otro modo, no deberían poder acceder. Estas recomendaciones para apps de Android y Chrome deberían ayudar a los desarrolladores a garantizar que sus apps funcionen bien con el filtrado de contenido.

Reduce el contenido web en tu app

Si tu app usa WebViews para permitir que los estudiantes accedan a tu servicio o para mostrar documentación, es posible que les permita navegar por la Web sin las protecciones de filtrado de contenido que proporcionan sus instituciones educativas. Algunos de los productos de filtrado de contenido más populares que usan las escuelas en las Chromebooks se implementan como extensiones de Chrome, que solo pueden ver el tráfico dentro de las pestañas del navegador. Dado que el contenido web suele ser impredecible, los estudiantes pueden navegar por los vínculos dentro de WebView para explorar la Web libremente, sin las protecciones de filtrado de contenido.

Si reduces la cantidad de contenido basado en el navegador que se muestra en tu aplicación, puedes reducir la probabilidad de que se acceda a contenido no deseado en ella. Si esto no es posible, asegúrate de que tu WebView solo muestre el contenido que deseas y no se vincule a un motor de búsqueda ni a la Web abierta.

Cómo restringir el contenido en tus WebViews

Si tu app requiere una WebView, asegúrate de que el contenido dentro de ella no pueda salir de tu aplicación y navegar a contenido que no te pertenezca ni controles. Para ello, puedes modificar el cliente de WebView para anular la carga de ciertas URLs a través de una lista de entidades permitidas en Android o analizar manualmente tu sitio y validar que los vínculos no dirijan a contenido de terceros que no puedas controlar, ya que esto podría permitir que tus usuarios accedan a contenido inapropiado. En el caso de las apps de Chrome, puedes usar WebRequestEventInterface para modificar solicitudes y validar que se les permita navegar a tu lista de sitios permitidos.

Iniciar sitios externos en el navegador

Puedes reducir el riesgo de que los usuarios evadan el filtrado de contenido si abres el contenido web en los navegadores web integrados en los dispositivos.

En las apps para Android, considera usar pestañas personalizadas de Chrome en lugar de WebViews. En Android, la pestaña personalizada abrirá una pestaña del navegador con el mismo tema que tu aplicación. En ChromeOS, se iniciará el navegador normal y se permitirá que los usuarios naveguen por la página como de costumbre, pero, como es su navegador normal, se permitirá la aplicación de políticas del navegador en el contenido al que acceden los estudiantes. Para la mayoría de las organizaciones educativas, esto significa que el contenido que se mostraría sería visible para las extensiones de filtrado de contenido que se ejecutan en el navegador. Esto es especialmente útil para los proveedores de identidad externos que dependen de la implementación de OAuth en un WebView.

En las Apps de Chrome, los vínculos a contenido que no te pertenece deben abrirse en una pestaña nueva en lugar de dentro de la WebView en ejecución. Para abrir una pestaña nueva desde tu app de Chrome, puedes modificar las etiquetas de anclaje para establecer el atributo target de modo que apunte a _blank, lo que permitirá que el vínculo se abra en una pestaña nueva.

<a href=”https://google.com” target=”_blank”>External Site</a>

Nota: Si necesitas usar un WebView en una app de Chrome para la autenticación de inicio de sesión único, asegúrate de que el proveedor de identidad que elijas usar abra vínculos nuevos en pestañas nuevas con el atributo de destino mencionado de _blank o no vincule ningún contenido que les permita escapar a un motor de búsqueda o a otro contenido que pueda brindarles acceso amplio a Internet.

Usa Acceder con Google

Si tu aplicación solo usa Acceder con Google, no uses un WebView para acceder. En cambio, en Android, manéjalo con el flujo de acceso y registro con One Tap. Si usas apps de Chrome, sigue usando la API de chrome.identity. Los vínculos de este flujo de acceso comienzan desde el navegador en lugar de una WebView incorporada, que puede no tener los mismos controles de filtrado aplicados.