Partilhar via


Suportar múltiplos perfis numa única pasta de dados de utilizador

A API de Múltiplos Perfis webView2 permite-lhe criar e manipular perfis de utilizador para trabalhar com os seus controlos WebView2. Os perfis no WebView2 são conceptualmente semelhantes aos perfis no Microsoft Edge. O suporte de múltiplos perfis permite que uma aplicação WebView2 tenha múltiplos perfis numa única pasta de dados de utilizador.

Cada perfil tem uma pasta de perfil dedicada para guardar dados do browser, que fornece armazenamento de dados de navegação separado para cada utilizador, como cookies, definições de preferência do utilizador e recursos em cache. Todos os controlos WebView2 associados ao mesmo perfil de utilizador partilham uma única pasta de perfil.

Abordagem anterior: Utilizar uma pasta de dados de utilizador diferente para cada controlo WebView2

Anteriormente, sem suporte de múltiplos perfis, para alcançar a separação de dados, uma aplicação WebView2 poderia utilizar pastas de dados de utilizador diferentes para diferentes controlos WebView2. No entanto, nessa abordagem, tem de executar várias instâncias de runtime webView2 (cada uma incluindo um processo do browser e um conjunto de processos subordinados), que consumiram mais recursos do sistema, incluindo memória, espaço na CPU e espaço em disco.

Especificar 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. Utilize este objeto para especificar o perfil de destino ao criar uma instância de controlo WebView2.

Criar um controlo WebView2 que utiliza o perfil

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

Exemplo de especificação do 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;
}

Aceder e manipular o perfil

Pode obter o objeto de perfil ao aceder à Profile propriedade de um controlo WebView2.

Depois de obter o objeto de perfil, pode manipulá-lo. Utilize CoreWebView2Profile para obter informações de perfil e realizar operações e definições ao nível do 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