Administrar la carpeta de datos de usuario

Las aplicaciones de WebView2 interactúan con las carpetas de datos de usuario para almacenar los datos del explorador, como cookies, permisos y recursos almacenados en la memoria caché. Cada instancia de un control WebView2 está asociada a una carpeta de datos de usuario. Cada carpeta de datos de usuario es única para un usuario.

Procedimientos recomendados

Las carpetas de datos de usuario se crean automáticamente mediante WebView2. Los programadores de WebView2 controlan la duración de la carpeta de datos de usuario. Si su aplicación vuelve a usar los datos de usuario de las sesiones de la aplicación, considere la posibilidad de guardar las carpetas de datos de usuario; de lo contrario, puede eliminarlas. Considere los escenarios siguientes al decidir cómo administrar las carpetas de datos de usuario:

  • Si el mismo usuario usa la aplicación varias veces y el contenido Web de la aplicación depende de los datos del usuario, guarde la carpeta de datos de usuario. Si varios usuarios usan la aplicación varias veces, cree una nueva carpeta de datos de usuario para cada nuevo usuario y guarde la carpeta de datos de usuario de cada usuario.
  • Si su aplicación no tiene usuarios repetidos, cree una nueva carpeta de datos de usuario para cada usuario y elimine la carpeta datos de usuario anterior.

Crear carpetas de datos de usuario

Para especificar la ubicación de la carpeta de datos de usuario, incluya el userDataFolder parámetro al llamar a ICoreWebView2Environment \ (Win32 ) o CoreWebView2Environment \ (.net ). Después de la creación, los datos del explorador del control WebView2 se almacenan en una subcarpeta de userDataFolder . Cuando userDataFolder no se especifica, WebView2 crea carpetas de datos de usuario en ubicaciones predeterminadas de la siguiente manera:

  • Para las aplicaciones empaquetadas de la tienda Windows, la carpeta de usuario predeterminada es la subcarpeta ApplicationData\LocalFolder de la carpeta del paquete.
  • Para las aplicaciones de escritorio existentes, la carpeta datos de usuario predeterminada es la ruta de acceso de archivo exe de la aplicación + .WebView2 . En lugar de usar el valor predeterminado, le recomendamos que especifique una carpeta de datos de usuario y que la cree en la misma carpeta en la que se almacenan todos los demás datos de la aplicación.

Eliminar carpetas de datos de usuario

Es posible que su aplicación tenga que eliminar las carpetas de datos de usuario:

  • Al desinstalar la aplicación. Si está desinstalando aplicaciones de la tienda Windows empaquetadas, Windows elimina automáticamente las carpetas de datos de usuario.
  • Para limpiar todo el historial de datos de exploración.
  • Para recuperar datos dañados.
  • Para quitar los datos de sesión anteriores.

Nota

Es posible que los archivos de carpetas de datos de usuario aún estén en uso después de cerrar la aplicación WebView2. En esta situación, espere a que el proceso del explorador y todos los procesos secundarios se cierren antes de eliminar la carpeta. Puede recuperar el identificador de proceso del proceso del explorador mediante la BrowserProcessId propiedad de la WebView2.

Compartir carpetas de datos de usuario

Es posible que los controles WebView2 compartan las mismas carpetas de datos de usuario en:

Tenga en cuenta lo siguiente al compartir carpetas de datos de usuario:

  1. Al volver a crear los controles de WebView2 para actualizar las versiones del explorador con los eventos add_NewBrowserVersionAvailable \ (Win32 ) o NewBrowserVersionAvailable \ (.net ), asegúrese de que los procesos del explorador cierran y cierran WebView2 controles que comparten la misma carpeta de datos de usuario. Para recuperar el identificador de proceso del proceso del explorador, use la BrowserProcessId propiedad del control WebView2.

  2. Los controles de WebView2 que comparten la misma carpeta de datos de usuario deben usar las mismas opciones para ICoreWebView2Environment \ (Win32 ) o CoreWebView2Environment \ (.net ). De lo contrario, se producirá un error en la creación de WebView2 HRESULT_FROM_WIN32(ERROR_INVALID_STATE) .

Para aislar las distintas partes de la aplicación o cuando no es necesario compartir datos entre controles WebView2, puede optar por usar carpetas de datos de usuario diferentes. Por ejemplo, una aplicación puede constar de dos controles WebView2, uno para mostrar un anuncio y el otro para mostrar el contenido de la aplicación. En este caso, los desarrolladores pueden optar por usar distintas carpetas de datos de usuario para cada control de WebView2.

Nota

Cada proceso de explorador WebView2 consume memoria y espacio en disco adicional. Por lo tanto, le recomendamos que no ejecute WebView2s con demasiadas carpetas de datos de usuario diferentes al mismo tiempo.