Procedimientos recomendados de desarrollo para aplicaciones WebView2
Se recomiendan los siguientes procedimientos recomendados para desarrollar aplicaciones WebView2 de producción.
Uso del runtime de Evergreen WebView2
Se recomienda usar Evergreen WebView2 Runtime para la mayoría de las aplicaciones WebView2, en lugar de usar el entorno de ejecución de versión fija.
El tiempo de ejecución evergreen se actualiza automáticamente en el cliente, de modo que las características más recientes y las revisiones de seguridad estén disponibles para la aplicación WebView2. El tiempo de ejecución evergreen también requiere menos espacio de almacenamiento en el disco que el tiempo de ejecución de versión fija. La distribución en tiempo de ejecución de versión fija solo se recomienda para las aplicaciones que tienen requisitos de compatibilidad estrictos.
Para obtener más información sobre las ventajas de Evergreen Runtime, consulte Detalles sobre el modo de distribución evergreen runtime en Distribución de la aplicación y el entorno de ejecución webView2.
Para asegurarse de que la aplicación WebView2 funciona bien con Evergreen WebView2 Runtime, use los procedimientos recomendados en las subsecciones siguientes:
- Asegúrese de que el entorno de ejecución de WebView2 está instalado.
- Controle las actualizaciones del entorno de ejecución de WebView2.
- Realice pruebas de compatibilidad con el reenvío mediante canales de vista previa de Edge.
- Use la detección de características para las API más recientes.
Compruebe que el entorno de ejecución de WebView2 esté instalado.
Al usar evergreen WebView2 Runtime, antes de que la aplicación use el control WebView2, compruebe mediante programación para asegurarse de que evergreen WebView2 Runtime está instalado en el cliente.
Consulte Detectar si un entorno de ejecución de WebView2 ya está instalado en Distribuir la aplicación y el entorno de ejecución de WebView2.
Controlar las actualizaciones del entorno de ejecución de WebView2
Al usar el runtime de Evergreen WebView2, controle las actualizaciones en tiempo de ejecución de Evergreen WebView2. Las actualizaciones del runtime de Evergreen WebView2 se descargan automáticamente, pero una aplicación WebView2 en ejecución seguirá usando su versión actual del entorno de ejecución de WebView2, lo que podría ser que falten actualizaciones de seguridad. Para adoptar la nueva versión, una aplicación debe liberar todas las referencias a objetos WebView2 anteriores o reiniciarse. La implementación de un NewBrowserVersionAvailable
controlador de eventos puede pedir a los usuarios que reinicien la aplicación en busca de actualizaciones, con una recomendación para guardar el estado del usuario antes de salir de una transición sin problemas.
Consulte Control de actualizaciones del entorno de ejecución de Evergreen WebView2 en Distribución de la aplicación y el entorno de ejecución de WebView2.
Realizar pruebas de compatibilidad con reenvío mediante canales de versión preliminar de Edge
Al usar evergreen WebView2 Runtime, ejecute pruebas de compatibilidad directa mediante los canales de vista previa de Microsoft Edge (Beta, Desarrollo o Canary).
Dado que Evergreen Runtime se actualiza automáticamente, debe ejecutar periódicamente pruebas de compatibilidad para asegurarse de que la aplicación WebView2 seguirá funcionando según lo esperado en la nueva versión del entorno de ejecución. Para ello, pruebe el contenido web en el control WebView2 con los canales de vista previa de Microsoft Edge.
Siga las instrucciones de Pruebas preliminares mediante canales de versión preliminar y Autohospedado mediante la implementación de canales en versión preliminar.
Uso de la detección de características para las API más recientes
Al usar evergreen WebView2 Runtime, use la detección de características para comprobar si el runtime instalado admite las API agregadas recientemente. Para ejecutar una aplicación WebView2 desarrollada con una versión determinada del SDK de Webview2, el cliente debe tener instalada una versión compatible de WebView2 Runtime.
Cuando se usa Evergreen WebView2 Runtime, hay algunos escenarios en los que el tiempo de ejecución de un cliente no se ha actualizado automáticamente a la versión más reciente. Además, algunas directivas de grupo pausan la actualización del entorno de ejecución. Como resultado, al insertar una actualización en la aplicación WebView2, es posible que la aplicación no funcione si intenta llamar a las API más recientes que no están disponibles en el entorno de ejecución instalado del cliente. Por lo tanto, debe usar la detección de características para asegurarse de que las API más recientes que usa la aplicación WebView2 son compatibles con el entorno de ejecución de WebView2 instalado en el cliente.
Consulte Detección de características para comprobar si el entorno de ejecución instalado admite las API agregadas recientemente en los SDK de versión preliminar y versión para WebView2.
Actualizar periódicamente si se usa el entorno de ejecución de versión fija
Si usa el entorno de ejecución webView2 de versión fija, asegúrese de actualizar periódicamente el entorno de ejecución de WebView2 empaquetado con la aplicación para reducir los riesgos de seguridad. Para determinar la frecuencia con la que debe actualizar el entorno de ejecución de versión fija, debe tener en cuenta el modelo de amenazas de la aplicación. Por ejemplo, al usar contenido de terceros en aplicaciones webview2, considere siempre que el contenido no es de confianza.
Consulte Detalles sobre el modo de distribución en tiempo de ejecución de versión fija en Distribución de la aplicación y el entorno de ejecución de WebView2.
Administración de la duración de la carpeta de datos de usuario
Las aplicaciones WebView2 crean una carpeta de datos de usuario para almacenar datos como cookies, credenciales y permisos. Después de crear la carpeta de datos de usuario, la aplicación es responsable de administrar la duración de la carpeta de datos del usuario. Por ejemplo, la aplicación debe realizar la limpieza cuando se desinstala la aplicación.
Consulte Administrar carpetas de datos de usuario para obtener más instrucciones sobre cómo administrar la carpeta de datos de usuario.
Controlar errores o salidas del proceso en tiempo de ejecución
Las aplicaciones WebView2 son compatibles con una colección de procesos en tiempo de ejecución que se ejecutan junto con el proceso de aplicación. Estos procesos en tiempo de ejecución auxiliares pueden producir un error por varias razones, como quedarse sin memoria o ser terminados por el usuario. La aplicación WebView2 debe controlar estos eventos relacionados con el proceso para asegurarse de que la aplicación puede recuperarse de errores y seguir ejecutándose sin problemas.
Consulte Control de eventos relacionados con procesos en WebView2 para obtener más información sobre cómo controlar eventos relacionados con procesos en aplicaciones WebView2.
Controladores de eventos en el objeto de entorno
Si alguno de los controladores de eventos de la aplicación en el objeto de entorno contiene una referencia al objeto de entorno y la aplicación simplemente libera la referencia al entorno y a los controladores de eventos sin quitar los controladores de eventos, puede haber una referencia circular entre el objeto de entorno y los objetos de controlador, que pierden memoria.
Para evitar una pérdida de memoria de este tipo:
Para cualquier controlador de eventos agregado, quite el controlador de eventos antes de liberar el objeto de entorno.
Evite mantener una referencia al objeto de entorno en un controlador de eventos. En su lugar, el controlador de eventos puede acceder al objeto de entorno desde el
sender
argumento de la devolución de llamada "event completed".Si quieres que la aplicación contenga una referencia a un objeto WebView2, usa una referencia débil siempre que sea posible.
Seguir los procedimientos recomendados de seguridad
WebView2 le permite hospedar contenido web en las aplicaciones nativas, lo que proporciona ventajas como el uso de la interfaz de usuario basada en web, el acceso a las características de la plataforma web y el uso compartido de código entre plataformas.
Sin embargo, hospedar contenido web también puede presentar vulnerabilidades. Para evitar vulnerabilidades que pueden surgir al hospedar contenido web dentro de una aplicación nativa, asegúrese de diseñar la aplicación WebView2 para supervisar estrechamente las interacciones entre el contenido web y la aplicación host.
Siga las instrucciones de Desarrollo de aplicaciones WebView2 seguras.