Partager via


Prise en charge de plusieurs profils dans un seul dossier de données utilisateur

L’API WebView2 Multiple Profiles vous permet de créer et de manipuler des profils utilisateur pour travailler avec vos contrôles WebView2. Les profils dans WebView2 sont conceptuellement similaires aux profils dans Microsoft Edge. La prise en charge de plusieurs profils permet à une application WebView2 d’avoir plusieurs profils sous un seul dossier de données utilisateur.

Chaque profil dispose d’un dossier de profil dédié pour enregistrer les données du navigateur, qui fournit un stockage de données de navigation distinct pour chaque utilisateur, comme les cookies, les paramètres de préférence utilisateur et les ressources mises en cache. Tous les contrôles WebView2 associés au même profil utilisateur partagent un dossier de profil unique.

Approche précédente : Utilisation d’un dossier de données utilisateur différent pour chaque contrôle WebView2

Auparavant, sans prise en charge de plusieurs profils, pour obtenir la séparation des données, une application WebView2 pouvait utiliser différents dossiers de données utilisateur pour différents contrôles WebView2. Toutefois, dans cette approche, vous devez exécuter plusieurs instances de runtime WebView2 (chacune incluant un processus de navigateur et un ensemble de processus enfants), qui ont consommé davantage de ressources système, notamment la mémoire, l’encombrement du processeur et l’espace disque.

Spécifier le profil lors de la création d’un WebView2

Créer un objet options qui définit un profil

La CreateCoreWebView2ControllerOptions méthode sur CoreWebView2Environment crée un objet options, CoreWebView2ControllerOptions, pour fournir des informations spécifiques sur un profil, notamment ProfileName et IsInPrivateModeEnabled. Utilisez cet objet pour spécifier le profil cible lors de la création d’une instance de contrôle WebView2.

Créer un contrôle WebView2 qui utilise le profil

Chaque Create...Controller méthode qui accepte un options paramètre crée un contrôle WebView2 et l’associe au profil que vous avez spécifié. Si le profil spécifié n’existe pas, un nouveau profil est créé.

Exemple de spécification du profil lors de la création d’un 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;
}

Accéder au profil et le manipuler

Vous pouvez obtenir l’objet de profil en accédant à la Profile propriété d’un contrôle WebView2.

Une fois que vous avez obtenu l’objet de profil, vous pouvez le manipuler. Utilisez CoreWebView2Profile pour obtenir des informations de profil et effectuer des paramètres et des opérations à l’échelle du profil.

Exemple d’accès et de manipulation du profil

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

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

// update window icon
SetAppIcon(inPrivate);

Voir aussi