Partilhar via


Suporte a vários perfis em uma única pasta de dados de usuário

A API de Vários Perfis do WebView2 permite que você crie e manipule perfis de usuário para trabalhar com seus controles WebView2. Os perfis no WebView2 são conceitualmente semelhantes aos perfis no Microsoft Edge. O suporte a vários perfis permite que um aplicativo WebView2 tenha vários perfis em uma única pasta de dados do usuário.

Cada perfil tem uma pasta de perfil dedicada para salvar dados do navegador, que fornece armazenamento de dados de navegação separado para cada usuário, como cookies, configurações de preferência do usuário e recursos armazenados em cache. Todos os controles WebView2 associados ao mesmo perfil de usuário compartilham uma única pasta de perfil.

Abordagem anterior: usando uma pasta de dados de usuário diferente para cada controle WebView2

Anteriormente, sem suporte para vários perfis, para obter a separação de dados, um aplicativo WebView2 poderia usar pastas de dados de usuário diferentes para diferentes controles WebView2. No entanto, nessa abordagem, você deve executar várias instâncias de runtime do WebView2 (cada uma incluindo um processo de navegador e vários processos filho), que consumiram mais recursos do sistema, incluindo memória, pegada de CPU e espaço em disco.

Especifique o perfil ao criar um WebView2

Criar um objeto de opções que define um perfil

O CreateCoreWebView2ControllerOptions método em CoreWebView2Environment cria um objeto de opções, CoreWebView2ControllerOptions, para fornecer informações específicas sobre um perfil, incluindo ProfileName e IsInPrivateModeEnabled. Use esse objeto para especificar o perfil de destino ao criar uma instância de controle Do WebView2.

Criar um controle WebView2 que usa o perfil

Cada Create...Controller método que usa um options parâmetro cria um controle WebView2 e o associa ao perfil especificado. Se o perfil especificado não existir, um novo perfil será criado.

Exemplo de especificar o perfil ao criar um 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;
}

Acessar e manipular o perfil

Você pode obter o objeto de perfil acessando a Profile propriedade de um controle WebView2.

Depois de obter o objeto de perfil, você pode manipulá-lo. Use CoreWebView2Profile para obter informações de perfil e fazer operações e configurações em todo o perfil.

Exemplo de acesso e manipulação do 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);

Confira também