Freigeben über


Unterstützung mehrerer Profile unter einem einzelnen Benutzerdatenordner

Mit der WebView2-API für mehrere Profile können Sie Benutzerprofile erstellen und bearbeiten, um mit Ihren WebView2-Steuerelementen zu arbeiten. Profile in WebView2 ähneln den Profilen in Microsoft Edge. Die Unterstützung mehrerer Profile ermöglicht es einer WebView2-App, mehrere Profile unter einem einzelnen Benutzerdatenordner zu haben.

Jedes Profil verfügt über einen dedizierten Profilordner zum Speichern von Browserdaten, der einen separaten Browserdatenspeicher für jeden Benutzer bereitstellt, z. B. Cookies, Benutzereinstellungen und zwischengespeicherte Ressourcen. Alle WebView2-Steuerelemente, die demselben Benutzerprofil zugeordnet sind, verwenden einen einzelnen Profilordner.

Vorheriger Ansatz: Verwenden eines anderen Benutzerdatenordners für jedes WebView2-Steuerelement

Bisher konnte eine WebView2-App ohne Unterstützung mehrerer Profile unterschiedliche Benutzerdatenordner für verschiedene WebView2-Steuerelemente verwenden, um die Datentrennung zu erreichen. Bei diesem Ansatz müssen Sie jedoch mehrere WebView2-Runtimeinstanzen ausführen (jede umfasst einen Browserprozess und eine Reihe von untergeordneten Prozessen), die mehr Systemressourcen verbraucht haben, einschließlich Arbeitsspeicher, CPU-Speicherbedarf und Speicherplatz.

Angeben des Profils beim Erstellen einer WebView2

Erstellen eines Optionsobjekts, das ein Profil definiert

Die CreateCoreWebView2ControllerOptions -Methode für CoreWebView2Environment erstellt ein Optionsobjekt, CoreWebView2ControllerOptions, um bestimmte Informationen zu einem Profil bereitzustellen, einschließlich ProfileName und IsInPrivateModeEnabled. Verwenden Sie dieses Objekt, um das Zielprofil beim Erstellen einer WebView2-Steuerelementinstanz anzugeben.

Erstellen eines WebView2-Steuerelements, das das Profil verwendet

Jede Create...Controller Methode, die einen options Parameter akzeptiert, erstellt ein WebView2-Steuerelement und ordnet es dem von Ihnen angegebenen Profil zu. Wenn das angegebene Profil nicht vorhanden ist, wird ein neues Profil erstellt.

Beispiel für die Angabe des Profils beim Erstellen einer 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;
}

Zugreifen auf das Profil und Bearbeiten des Profils

Sie können das Profilobjekt abrufen, indem Sie auf die Profile -Eigenschaft eines WebView2-Steuerelements zugreifen.

Nachdem Sie das Profilobjekt abgerufen haben, können Sie es bearbeiten. Verwenden Sie CoreWebView2Profile , um Profilinformationen abzurufen und profilweite Einstellungen und Vorgänge auszuführen.

Beispiel für den Zugriff auf und das Bearbeiten des Profils

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

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

// update window icon
SetAppIcon(inPrivate);

Siehe auch