Compartir a través de


Compatibilidad con varios perfiles en una sola carpeta de datos de usuario

La API De varios perfiles de WebView2 permite crear y manipular perfiles de usuario para trabajar con los controles WebView2. Los perfiles de WebView2 son conceptualmente similares a los perfiles de Microsoft Edge. La compatibilidad con varios perfiles permite que una aplicación WebView2 tenga varios perfiles en una sola carpeta de datos de usuario.

Cada perfil tiene una carpeta de perfil dedicada para guardar los datos del explorador, que proporciona almacenamiento de datos de exploración independiente para cada usuario, como cookies, configuración de preferencias de usuario y recursos almacenados en caché. Todos los controles WebView2 asociados al mismo perfil de usuario comparten una única carpeta de perfil.

Enfoque anterior: Usar una carpeta de datos de usuario diferente para cada control WebView2

Anteriormente, sin compatibilidad con varios perfiles, para lograr la separación de datos, una aplicación WebView2 podía usar diferentes carpetas de datos de usuario para distintos controles WebView2. Sin embargo, en ese enfoque, debe ejecutar varias instancias en tiempo de ejecución de WebView2 (cada una de ellas, incluido un proceso de explorador y un montón de procesos secundarios), que consumieron más recursos del sistema, como memoria, superficie de CPU y espacio en disco.

Especificar el perfil al crear una instancia de WebView2

Crear un objeto de opciones que defina un perfil

El CreateCoreWebView2ControllerOptions método en CoreWebView2Environment crea un objeto de opciones, CoreWebView2ControllerOptions, para proporcionar información específica sobre un perfil, incluidos ProfileName y IsInPrivateModeEnabled. Use este objeto para especificar el perfil de destino al crear una instancia de control WebView2.

Creación de un control WebView2 que use el perfil

Cada Create...Controller método que toma un options parámetro crea un control WebView2 y lo asocia al perfil especificado. Si el perfil especificado no existe, se creará un nuevo perfil.

Ejemplo de especificación del perfil al crear una instancia de WebView2

public async void CreateWebView2Controller(object sender, RoutedEventArgs e)
{
    var hwnd = new HwndForWV2();
    Window window = new Window();
    window.Content = hwnd;
    window.Show();

    var env = await CoreWebView2Environment.CreateAsync();
    var options = env.CreateCoreWebView2ControllerOptions();
    options.ProfileName = "MyProfile";
    options.IsInPrivateModeEnabled = true;
    var controller = await env.CreateCoreWebView2ControllerAsync(hwnd.Handle, options);

    controller.Bounds = new System.Drawing.Rectangle(0, 0, 800, 600);
    controller.CoreWebView2.Navigate("https://www.bing.com/");
    controller.CoreWebView2.NavigationStarting += CoreWebView_NavigationStarting;
}

Acceso y manipulación del perfil

Puede obtener el objeto de perfil accediendo a la Profile propiedad de un control WebView2.

Después de obtener el objeto de perfil, puede manipularlo. Use CoreWebView2Profile para obtener información de perfil y realizar operaciones y configuraciones de todo el perfil.

Ejemplo de acceso y manipulación del perfil

string profileName = controller.CoreWebView2.Profile.ProfileName;
bool inPrivate = controller.CoreWebView2.Profile.IsInPrivateModeEnabled;

// update window title with profileName
UpdateAppTitle(profileName);

// update window icon
SetAppIcon(inPrivate);

Consulte también