Procedimientos recomendados de desarrollo de WebView2
Cada equipo de desarrollo sigue diferentes prácticas al compilar su aplicación. Al crear aplicaciones de producción de WebView2, se recomienda seguir estas recomendaciones y procedimientos recomendados.
Usar el tiempo de ejecución de Evergreen (recomendado)
Por lo general, se recomienda usar Evergreen WebView2 Runtime. La distribución de tiempo de ejecución de versiones fijas solo se recomienda para aplicaciones que tienen requisitos de compatibilidad estrictos. El tiempo de ejecución de Evergreen se actualiza automáticamente en el cliente, de modo que las últimas características y revisiones de seguridad estén disponibles para la aplicación WebView2. El tiempo de ejecución de Evergreen también requiere menos espacio de almacenamiento en el disco que el tiempo de ejecución de la versión fija.
Si usas el tiempo de ejecución de Evergreen, antes de ejecutar la aplicación WebView2, prueba si Evergreen WebView2 Runtime está instalado en el cliente. Para obtener más información, vaya a Deploying the Evergreen WebView2 Runtime.
Ejecutar pruebas de compatibilidad con regularidad al usar Evergreen Runtime
Al usar Evergreen WebView2 Runtime, el tiempo de ejecución se actualiza automáticamente, por lo que debe ejecutar periódicamente pruebas de compatibilidad. Para asegurarse de que la aplicación WebView2 seguirá funcionando como se esperaba, pruebe el contenido web en el control WebView2 con los canales de Insider (versión preliminar) de Microsoft Edge (Beta, Desarrollo o Canary).
Esta guía es similar a la que ofrecemos a los desarrolladores web. Para obtener más información, vaya a Probar la aplicación para la compatibilidad con avances.
Probar si las API más recientes son compatibles con el tiempo de ejecución de WebView2 instalado
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. Dado que las API se agregan continuamente a WebView2, también se lanzan nuevas versiones del tiempo de ejecución para admitir las nuevas API. Usa la detección de características para asegurarte de que las API más recientes que usa la aplicación WebView2 son compatibles con El tiempo de ejecución de WebView2 instalado en el cliente.
Si 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. Por ejemplo, si un cliente no tiene acceso a Internet, el tiempo de ejecución no se actualiza automáticamente. Además, algunas directivas de grupo pausan la actualización del tiempo de ejecución. Al insertar una actualización en la aplicación WebView2, es posible que la aplicación no funcione si intenta llamar a API más recientes que no están disponibles en el tiempo de ejecución instalado del cliente.
Para solucionar esta situación, antes de que el código llame a una API de WebView2 agregada recientemente, compruebe si esa API está disponible en el tiempo de ejecución instalado del cliente. Esta prueba de funcionalidad más reciente es similar a otros procedimientos recomendados de desarrollo web que detectan características compatibles antes de usar nuevas API web. Para probar la disponibilidad de la API en el tiempo de ejecución instalado, use:
QueryInterfaceen C/C++.- Un
try/catchbloque en .NET o WinUI.
Para obtener más información, vaya a Detección de características para comprobar si el tiempo de ejecución instalado admite API agregadas recientemente.
Actualizar el tiempo de ejecución de la versión fija
Si usas El tiempo de ejecución de WebView2 de versión fija, asegúrate de actualizar regularmente el tiempo de ejecución de WebView2 que está empaquetado con la aplicación, para reducir los riesgos de seguridad. Al usar contenido de terceros en aplicaciones webview2, considere siempre que el contenido no es de confianza. Para obtener más información, vaya al modo de distribución de versión fija.
Administrar nuevas versiones de Evergreen Runtime
Cuando se descarga una nueva versión de Evergreen WebView2 Runtime en el cliente, las aplicaciones webView2 que se ejecutan siguen usando la versión anterior del tiempo de ejecución, hasta que se libera el proceso del explorador. Este comportamiento permite que las aplicaciones se ejecuten continuamente e impide que se elimine el tiempo de ejecución anterior. Para usar la nueva versión del tiempo de ejecución, debes liberar todas las referencias a los objetos de entorno webView2 anteriores o reiniciar la aplicación. La próxima vez que la aplicación cree un nuevo entorno WebView2, la aplicación usará la nueva versión del tiempo de ejecución.
Cuando hay disponible una nueva versión del tiempo de ejecución, la aplicación puede tomar medidas automáticamente, como notificar al usuario que reinicie la aplicación. Para detectar que hay disponible una nueva versión del tiempo de ejecución, puede usar el evento add_NewBrowserVersionAvailable (Win32) o CoreWebView2Environment.NewBrowserVersionAvailable (.NET) en el código. Si el código controla el reinicio de la aplicación, considera la posibilidad de guardar el estado del usuario antes de que salga la aplicación WebView2.
Administrar 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, la aplicación es responsable de administrar la duración de la carpeta de datos de usuario. Por ejemplo, la aplicación debe realizar la limpieza cuando se desinstala la aplicación. Para obtener más información, vaya a Administrar la carpeta de datos de usuario.
Controlar errores de proceso en tiempo de ejecución
La aplicación WebView2 debe escuchar y controlar el evento, por lo que la aplicación puede recuperarse de errores de procesos en tiempo de ejecución compatibles con el proceso ProcessFailed de aplicación webView2.
Las aplicaciones webView2 son compatibles con una colección de procesos en tiempo de ejecución que se ejecutan junto con el proceso de la aplicación. Estos procesos de tiempo de ejecución compatibles pueden producir errores por diversos motivos, como que el usuario se esté quedando sin memoria o que el usuario termine. Cuando se produce un error en un proceso de tiempo de ejecución compatible, WebView2 notifica a la aplicación generando el evento ProcessFailed.
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 los controladores de eventos sin quitar los controladores de eventos, es posible que haya una referencia circular entre el objeto de entorno y los objetos de controlador, lo que perdería memoria.
Para evitar dicha pérdida de memoria:
- 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 tener acceso al objeto de entorno desde el argumento de la devolución de llamada
sender"evento completado". - Si quieres que la aplicación mantenga una referencia a un objeto WebView2, usa una referencia débil siempre que sea posible.
Seguir los procedimientos recomendados de seguridad de WebView2
Para cualquier aplicación WebView2, asegúrate de seguir nuestros procedimientos recomendados de seguridad de WebView2. Para obtener más información, vaya a Procedimientos recomendados para desarrollar aplicaciones webView2 seguras.