Erste Schritte mit WebView2 in WinUI 3-Apps (Windows App SDK)
In diesem Artikel wird beschrieben, wie Sie Ihre Entwicklungstools einrichten und eine erste WebView2-App für WinUI 3 (Windows App SDK) erstellen und dabei mehr über WebView2-Konzepte erfahren. Sie verwenden zunächst die Visual Studio-Projektvorlage Leere App, Verpackt (WinUI 3 in Desktop), die das WindowsAppSDK verwendet, das das WebView2 SDK enthält. Anschließend fügen Sie ein WebView2-Steuerelement, eine Adressleiste und die Schaltfläche "Gehe zu" sowie URL-Logik hinzu, um nur das Navigieren zu HTTPS-URLs zu ermöglichen.
In diesem Tutorial führen Sie folgende Schritte aus:
Richten Sie die Entwicklungsumgebung ein.
Verwenden Sie die Visual Studio-Projektvorlage Leere App, gepackt (WinUI 3 in Desktop), um ein leeres WinUI 3-Projekt zu erstellen, das eine App definiert, die eine Schaltfläche enthält.
Fügen Sie anstelle der Schaltfläche ein WebView2-Steuerelement hinzu, und navigieren Sie zunächst zur Microsoft-Startseite. WebView2 wird unterstützt, da die Projektvorlage das NuGet-Paket Microsoft.WindowsAppSDK verwendet, das das WebView2 SDK enthält.
Fügen Sie eine Adressleiste als Textfeld-Steuerelement hinzu, und verwenden Sie dann die eingegebene HTTPS-Zeichenfolge, um zu einer neuen Webseite zu navigieren:
Fügen Sie JavaScript in das WebView2-Steuerelement ein, um eine Warnung (Dialogfeld) anzuzeigen, wenn der Benutzer versucht, zu einer URL zu navigieren, die nur ein
http://
Präfix anstelle vonhttps://
hat:
Abgeschlossenes Projekt
Eine vollständige Version dieses Tutorialprojekts ist im WebView2Samples-Repository verfügbar:
- Beispielname: WinUI3GetStarted
- Repositoryverzeichnis: WinUI3_GettingStarted
- Lösungsdatei: WinUI3GetStarted.sln
Schritt 1: Installieren der neuesten Visual Studio 2022-Version
Stellen Sie sicher, dass Visual Studio 2022 installiert und auf dem neuesten Stand ist.
So installieren Sie die neueste Version von Visual Studio 2022:
Wechseln Sie zu Visual Studio: IDE und Code Editor für Softwareentwickler und Teams, und klicken Sie dann im Abschnitt Visual Studio 2022 auf die Schaltfläche Herunterladen, und wählen Sie dann Community 2022 oder eine andere Version aus.
Im Popup "Downloads " in der oberen rechten Ecke von Microsoft Edge
VisualStudioSetup.exe
ist aufgeführt. Klicken Sie auf Datei öffnen.Visual Studio-Installer wird geöffnet.
Folgen Sie den Anweisungen, und übernehmen Sie die Standardwerte. Im nächsten Schritt installieren oder aktualisieren Sie eine Workload und eine Komponente einer Workload.
Schritt 2: Installieren der neuesten Windows App SDK
Stellen Sie sicher, dass die neueste Windows App SDK in Visual Studio 2022 installiert ist. Die Windows App SDK enthält Visual Studio-Projektvorlagen und das WebView2 SDK. Diese Projektvorlagen enthalten die Projektvorlage Leere App, Verpackt (WinUI 3 in Desktop), die das WindowsAppSDK verwendet, einschließlich des WebView2 SDK.
Die Windows App SDK wird als komponente Windows App SDK C#-Vorlagen der Workload .NET DesktopEntwicklung für Visual Studio installiert. Vor Visual Studio 2022 Version 17.1 wurde die Windows App SDK stattdessen als Visual Studio-Erweiterung installiert, wie unter Installieren von Tools für die Windows App SDK erläutert.
So installieren Sie die neueste Visual Studio 2022-Windows App SDK:
Drücken Sie unter Windows die Starttaste , und geben Sie dann Visual Studio 2022 ein.
Die Visual Studio 2022-App ist aufgeführt.
Klicken Sie auf Öffnen.
Das Visual Studio 2022-Dialogfeld wird mit Abschnitten wie Zuletzt geöffnet und Erste Schritte geöffnet.
Klicken Sie auf Ohne Code fortfahren.
Visual Studio wird geöffnet.
Wählen Sie im Menü Extras die Option Tools und Features abrufen aus.
Das fenster Visual Studio-Installer wird geöffnet.
Stellen Sie sicher, dass die Registerkarte Workloads ausgewählt ist.
Wählen Sie im Abschnitt Desktop & Mobile die Karte für die Workload .NET-Desktopentwicklung aus, sodass ein Häkchen angezeigt wird:
Aktivieren Sie in der Installationsdetailsstruktur auf der rechten Seite unter .NET-Desktopentwicklung>Optional das Kontrollkästchen für die Komponente Windows App SDK C#-Vorlagen am unteren Rand der Struktur.
Klicken Sie auf die Schaltfläche Ändern .
Das Dialogfeld Benutzerkontensteuerung wird geöffnet.
Klicken Sie auf die Schaltfläche Ja .
Sie werden aufgefordert, Visual Studio zu schließen.
Klicken Sie auf die Schaltfläche Weiter (vorausgesetzt, Sie haben keine nicht gespeicherten Arbeiten).
Visual Studio lädt die neueste Komponente Windows App SDK C#-Vorlagen herunter und installiert sie. Im fenster Visual Studio-Installer wird die Meldung Alle Installationen sind auf dem neuesten Stand angezeigt, und Visual Studio 2022 wird geöffnet.
Schritt 3: Erstellen eines leeren WinUI 3-Projekts
Erstellen Sie als Nächstes ein Projekt, bei dem es sich um eine einfache WebView2-App für WinUI 3 (Windows App SDK) handelt. Diese Desktop-App enthält ein einzelnes Standard Fenster. Das Projekt enthält noch keinen WebView2-Code.
So erstellen Sie eine WebView2-App für WinUI 3 (Windows App SDK):
Wenn Visual Studio ausgeführt wird, wählen Sie Datei>Neues>Projekt aus. Das Dialogfeld Neues Projekt erstellen wird geöffnet.
Wenn Visual Studio 2022 nicht ausgeführt wird:
Drücken Sie unter Windows die Starttaste , und geben Sie dann Visual Studio 2022 ein.
Die Visual Studio 2022-App ist aufgeführt.
Klicken Sie auf Öffnen.
Das Visual Studio 2022-Startdialogfeld mit Abschnitten wie Zuletzt geöffnet und Erste Schritte.
Klicken Sie im Abschnitt Erste Schritte auf das Karte Neues Projekt erstellen. Das Fenster Neues Projekt erstellen wird geöffnet.
Geben Sie im Fenster Neues Projekt erstellen im Feld Nach Vorlagen suchendie Zeichenfolge WinUI 3 in Desktop ein:
Die Projektvorlagen, die im vorherigen Hauptschritt installiert wurden, werden aufgeführt.
Klicken Sie auf die Karte Leere App, Verpackt (WinUI 3 in Desktop), um sie auszuwählen, und klicken Sie dann auf die Schaltfläche Weiter.
Das Dialogfeld Neues Projekt konfigurieren wird angezeigt.
Geben Sie im Textfeld Projektname einen Projektnamen ein, z. B. WinUI3GetStarted:
Geben Sie im Textfeld Speicherort ein Verzeichnis ein, oder navigieren Sie zu einem Verzeichnis, z
C:\Users\myUsername\source\
. B. .Klicken Sie auf die Schaltfläche Erstellen.
Das Projekt wird erstellt:
- Wenn ein Dialogfeld mit der Meldung "Fehler beim Installieren des Microsoft.WindowsAppSDK-Pakets" angezeigt wird, klicken Sie auf die Schaltfläche OK .
Schritt 4: Aktualisieren oder Installieren des Windows App SDK
Wenn Sie ein neues Projekt in Visual Studio erstellen, überprüfen Sie die status der NuGet-Pakete der Projektmappe. Stellen Sie sicher, dass die erforderlichen NuGet-Pakete von der Projektvorlage installiert wurden, und stellen Sie sicher, dass die Pakete aktualisiert wurden, damit das Projekt über die neuesten Features und Fixes verfügt.
So aktualisieren oder installieren Sie das neueste Windows App SDK NuGet-Paket für Ihr Projekt:
Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt WinUI3GetStarted, und wählen Sie dann NuGet-Pakete verwalten aus.
In Visual Studio wird die Registerkarte NuGet: WinUI3GetStarted geöffnet. Wenn das Microsoft.WindowsAppSDK-Paket während der Projekterstellung mithilfe der Projektvorlage installiert wurde, wird die Registerkarte Installiert ausgewählt, und dieses Paket wird aufgelistet:
Wenn das Microsoft.WindowsAppSDK-Paket nicht auf der Registerkarte Installiert aufgeführt ist:
Klicken Sie auf die Registerkarte Durchsuchen , und geben Sie dann im Textfeld Suchendie Zeichenfolge Microsoft.WindowsAppSDK ein.
Wählen Sie die Karte Microsoft.WindowsAppSDK aus:
Klicken Sie rechts auf die Schaltfläche Installieren .
Das Dialogfeld Vorschau der Änderungen wird geöffnet.
Klicken Sie auf die Schaltfläche Anwenden , und akzeptieren Sie dann die Lizenzbedingungen.
Das NuGet-Paket Microsoft.WindowsAppSDK ist installiert.
Klicken Sie auf der Registerkarte NuGet – Projektmappe auf die Registerkarte Updates, und aktualisieren Sie dann optional alle dort aufgeführten Pakete.
Schließen Sie die Registerkarte NuGet – Projektmappe .
Schritt 5: Erstellen und Ausführen des Projekts
Das neue WinUI 3-Projekt bleibt in Projektmappen-Explorer in Visual Studio geöffnet:
Die
App.xaml.cs
Datei definiert eineApplication
Klasse, die Ihre App instance darstellt.Die
MainWindow.xaml.cs
Datei definiert eineMainWindow
Klasse, die das Standard Fenster darstellt, das von Ihrer App-instance angezeigt wird. Die Klassen werden von Typen imMicrosoft.UI.Xaml
WinUI-Namespace abgeleitet.
So erstellen Sie das Projekt und führen es aus:
Wählen Sie Datei>Alle speichern (STRG+UMSCHALT+S) aus.
Wählen Sie Debug>Start (F5) aus.
Das Dialogfeld Entwicklermodus für Windows aktivieren wird möglicherweise geöffnet:
Wenn dieses Dialogfeld angezeigt wird, klicken Sie auf Einstellungen für Entwickler, aktivieren Sie den Umschalter Entwicklermodus , klicken Sie auf die Schaltfläche Ja , und klicken Sie dann auf die Schaltfläche Schließen des Visual Studio-Dialogfelds. Weitere Informationen zum Entwicklermodus finden Sie unter Aktivieren Ihres Geräts für die Entwicklung unter Erstellen von Desktop-Apps für Windows.
Das Projekt wird erstellt. Die leere WinUI Desktop-App wird geöffnet, ohne dass noch ein WebView2-Steuerelement hinzugefügt wurde:
Klicken Sie auf die Schaltfläche Click Me (Mich klicken).
Die Schaltflächenbezeichnung ändert sich in Geklickt.
Schließen Sie die App.
Schritt 6: Hinzufügen eines WebView2-Steuerelements
Das Projekt basiert auf der Projektvorlage Leere App, verpackt (WinUI 3 in Desktop), die das NuGet-Paket Microsoft.WindowsAppSDK verwendet, das das WebView2 SDK enthält. Daher können wir WebView2-Code hinzufügen. Sie bearbeiten die MainWindow.xaml
Dateien und MainWindow.xaml.cs
, um dem leeren WinUI 3-App-Projekt ein WebView2-Steuerelement hinzuzufügen, wobei zunächst die Microsoft-Startseite geladen wird. In der XAML-Datei wird das WebView-Steuerelement wie folgt gekennzeichnet:
<controls:WebView2 x:Name="MyWebView" Source="https://www.microsoft.com">
So fügen Sie ein WebView2-Steuerelement hinzu, das zunächst zur Microsoft-Startseite navigiert:
Doppelklicken Sie in Visual Studio in Projektmappen-Explorer auf
MainWindow.xaml
.Die Datei wird im Code-Editor geöffnet.
Kopieren Sie das folgende Attribut, und fügen Sie es in das
<Window>
Starttag am Ende der Liste der XML-Namespaces ein:xmlns:controls="using:Microsoft.UI.Xaml.Controls"
Dieser Code fügt den WebView2-XAML-Namespace hinzu. Stellen Sie sicher, dass Ihr Code in
MainWindow.xaml
dem folgenden Code ähnelt:<?xml version="1.0" encoding="utf-8"?> <Window x:Class="MyWebView2WinUI3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MyWebView2WinUI3" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:controls="using:Microsoft.UI.Xaml.Controls" mc:Ignorable="d"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <Button x:Name="myButton" Click="myButton_Click">Click Me</Button> </StackPanel> </Window>
Löschen Sie das
<StackPanel>
Element (drei Zeilen).Fügen Sie über dem
</Window>
Endtag das folgende<Grid>
Element ein:<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <controls:WebView2 x:Name="MyWebView" Grid.Row="1" Grid.ColumnSpan="2" Source="https://www.microsoft.com" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid>
Dieses
<Grid>
Element enthält ein<controls:WebView2>
Element namensMyWebView
, das über einSource
Attribut verfügt, das den anfänglichen URI festlegt, der im WebView2-Steuerelement (https://www.microsoft.com
) angezeigt wird. Wenn die App geöffnet wird, wird zunächst die Microsoft.com Startseite im WebView2-Steuerelement angezeigt.Erweitern Sie
MainWindow.xaml
Projektmappen-Explorer, und doppelklicken Sie dann aufMainWindow.xaml.cs
.MainWindow.xaml.cs
Löschen Sie in die folgende C#-Codezeile in dermyButton_Click
-Methode:myButton.Content = "Clicked";
Die -Methode ist vorerst leer. Wir verwenden sie später für die Schaltfläche "Go " der Adressleiste.
Wählen Sie Datei>Alle speichern (STRG+UMSCHALT+S) aus.
Drücken Sie F5.
Das Projekt wird erstellt, und die App wird geöffnet:
Die App ist eine WebView2-Host-App, die das WebView2-Steuerelement enthält. Das WebView2-Steuerelement zeigt zunächst die Website
https://www.microsoft.com
an. Es gibt noch kein Textfeld für die Adressleiste oder die Schaltfläche "Los ".Schließen Sie die App.
Schritt 7: Hinzufügen von Navigationssteuerelementen
Damit Benutzer steuern können, welche Webseite im WebView2-Steuerelement angezeigt wird, fügen Sie der App wie folgt eine Adressleiste hinzu:
Fügen
MainWindow.xaml
Sie in den folgenden Code in das<Grid>
-Element über dem<controls:WebView2>
-Element ein:<TextBox Name="addressBar" Grid.Column="0"/> <Button x:Name="myButton" Grid.Column="1" Click="myButton_Click">Go</Button>
Stellen Sie sicher, dass das resultierende
<Grid>
Element in derMainWindow.xaml
Datei mit Folgendem übereinstimmt:<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBox Name="addressBar" Grid.Column="0"/> <Button x:Name="myButton" Grid.Column="1" Click="myButton_Click">Go</Button> <controls:WebView2 x:Name="MyWebView" Grid.Row="1" Grid.ColumnSpan="2" Source="https://www.microsoft.com" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid>
Fügen
MainWindow.xaml.cs
Sie in den Textkörper dermyButton_Click
-Methode den folgendentry/catch
-Block ein:private void myButton_Click(object sender, RoutedEventArgs e) { try { Uri targetUri = new Uri(addressBar.Text); MyWebView.Source = targetUri; } catch (FormatException ex) { // Incorrect address entered. } }
Dieser Code navigiert das WebView2-Steuerelement zu der URL, die der Benutzer in die Adressleiste eingibt, wenn der Benutzer auf die Schaltfläche Go klickt, indem er den Wert der
MyWebView.Source
Eigenschaft neu festlegt, der demSource
Attribut des<controls:WebView2 x:Name="MyWebView">
Elements entspricht.Wählen Sie Datei>Alle speichern (STRG+UMSCHALT+S) aus.
Drücken Sie F5.
Das Projekt wird erstellt, und die App wird geöffnet, wobei zunächst die Microsoft-Startseite angezeigt wird. Es gibt jetzt eine Adressleiste und die Schaltfläche Gehe zu.
Geben Sie eine neue vollständige HTTPS-URL in die Adressleiste ein, z https://www.bing.com. B. , und klicken Sie dann auf die Schaltfläche Los :
Das WebView2-Steuerelement in der App zeigt die Bing-Website an. Auf der Adressleiste wird die URL angezeigt, z
https://www.bing.com
. B. .Geben Sie eine unvollständige URL in die Adressleiste ein, z
bing.com
. B. , und klicken Sie dann auf die Schaltfläche Los .Das WebView2-Steuerelement versucht nicht, zu dieser URL zu navigieren. Es wird eine Ausnahme ausgelöst, da die URL nicht mit
http://
oderhttps://
beginnt.try
Im Abschnitt beginnt dieaddressBar.Text
Zeichenfolge nicht mithttp://
oderhttps://
, aber die Nicht-URI-Zeichenfolge wird an denUri
Konstruktor übergeben, wodurch eineSystem.UriFormatException
Ausnahme ausgelöst wird. In Visual Studio wird im Ausgabebereich "Ausnahme ausgelöst: 'System.UriFormatException' in System.Private.Uri.dll" angezeigt. Die App wird weiterhin ausgeführt.Schließen Sie die App.
Schritt 8: Behandeln von Navigationsereignissen
Eine App, die ein WebView2-Steuerelement hostet, lauscht auf die folgenden Ereignisse:
NavigationStarting
SourceChanged
ContentLoading
HistoryChanged
NavigationCompleted
Diese Ereignisse werden während der Webseitennavigation von einem WebView2-Steuerelement ausgelöst. Wenn eine HTTP-Umleitung auftritt, gibt es mehrere NavigationStarting
Ereignisse in einer Zeile. Weitere Informationen finden Sie unter Navigationsereignisse für WebView2-Apps.
Wenn ein Fehler auftritt, werden die folgenden Ereignisse ausgelöst, und eine Fehlerwebseite wird möglicherweise angezeigt:
SourceChanged
ContentLoading
HistoryChanged
In diesem Abschnitt fügen Sie Code zum Importieren der WebView2 Core-Bibliothek hinzu, die Navigationsereignisse verarbeitet, um zu verschiedenen URLs-Typen zu wechseln.
So behandeln Sie Navigationsereignisse:
MainWindow.xaml.cs
Fügen Sie in oben über den anderenusing
Anweisungen die folgende Zeile hinzu:using Microsoft.Web.WebView2.Core;
Registrieren Sie einen Handler für
NavigationStarting
, der alle Nicht-HTTPS-Anforderungen abbricht:MainWindow.xaml.cs
Fügen Sie in im Konstruktor die folgendeNavigationStarting
Zeile hinzu:public MainWindow() { this.InitializeComponent(); MyWebView.NavigationStarting += EnsureHttps; }
Diese Zeile registriert die
EnsureHttps
-Methode (unten hinzugefügt) als Listener desNavigationStarting
Ereignisses.Fügen Sie unterhalb des Konstruktors die folgende
EnsureHttps
Methode hinzu:private void EnsureHttps(WebView2 sender, CoreWebView2NavigationStartingEventArgs args) { String uri = args.Uri; if (!uri.StartsWith("https://")) { args.Cancel = true; } else { addressBar.Text = uri; } }
Wählen Sie Datei>Alle speichern (STRG+UMSCHALT+S) aus.
Drücken Sie F5.
Das Projekt wird erstellt, und die App wird geöffnet.
Geben Sie in der App in der Adressleiste eine HTTP-URL ein, z
http://bing.com
. B. , und klicken Sie dann auf die Schaltfläche Gehe zu .Die App navigiert nicht zu dieser Seite, da die Navigation zu HTTP-Websites blockiert ist. Wir haben noch kein Dialogfeld hinzugefügt, um dem Benutzer mitzuteilen, warum sich die angezeigte Website nicht geändert hat.
Geben Sie eine HTTPS-URL ein, z
https://bing.com
. B. , und klicken Sie dann auf die Schaltfläche Los .Die App navigiert zur angegebenen Seite, da die Navigation für HTTPS-Websites zulässig ist.
Geben Sie in der App in der Adressleiste eine Zeichenfolge ohne Präfix ein, z
bing.com
. B. , und klicken Sie dann auf die Schaltfläche Gehe zu .Die App navigiert nicht zu dieser Seite. Wie zuvor wird eine
UriFormatException
Ausnahme ausgelöst und im Bereich Ausgabe in Visual Studio angezeigt.Schließen Sie die App.
Schritt 9: Einfügen von JavaScript, um den Benutzer über eine Nicht-HTTPS-Adresse zu benachrichtigen
Sie können die Host-App verwenden, um JavaScript-Code zur Laufzeit in das WebView2-Steuerelement einzufügen. Mit WebView2 können Sie beliebiges JavaScript ausführen oder Initialisierungsskripts hinzufügen. Das eingefügte JavaScript gilt für alle neuen Dokumente der obersten Ebene und alle untergeordneten Frames, bis das JavaScript entfernt wird. Der eingefügte JavaScript-Code wird mit einem bestimmten Zeitpunkt ausgeführt, um eine der folgenden Aktionen auszuführen:
Führen Sie das eingefügte JavaScript nach der Erstellung des globalen Objekts aus.
Führen Sie das eingefügte JavaScript aus, bevor Sie ein anderes Skript ausführen, das im HTML-Dokument enthalten ist.
Im Folgenden fügen Sie JavaScript hinzu, das eine Warnung anzeigt, wenn ein Benutzer versucht, eine Nicht-HTTPS-Website zu öffnen. Dazu müssen Sie ein Skript in den Webinhalt einfügen, der ExecuteScriptAsync verwendet.
So zeigen Sie eine Warnung an, wenn der Benutzer versucht, zu einer Website ohne HTTPS zu navigieren:
MainWindow.xaml.cs
Fügen Sie in derEnsureHttps
-Methode die folgendeExecuteScriptAsync
Zeile hinzu:private void EnsureHttps(WebView2 sender, CoreWebView2NavigationStartingEventArgs args) { String uri = args.Uri; if (!uri.StartsWith("https://")) { MyWebView.ExecuteScriptAsync($"alert('{uri} is not safe, try an https link')"); args.Cancel = true; } else { addressBar.Text = uri; } }
Wählen Sie Datei>Alle speichern (STRG+UMSCHALT+S) aus.
Drücken Sie F5.
Das Projekt wird erstellt, und die App wird geöffnet.
Geben Sie in der Adressleiste der App eine NICHT-HTTPS-URL ein, z
http://www.bing.com
. B. , und klicken Sie dann auf die Schaltfläche Gehe zu.Das WebView2-Steuerelement der App zeigt ein Warnungsdialogfeld für Nicht-HTTPS-Websites an, in dem darauf hingewiesen wird, dass das Nicht-HTTPS-Steuerelement
uri
nicht sicher ist:Schließen Sie die App.
Herzlichen Glückwunsch, Sie haben eine WebView2 WinUI 3 (Windows App SDK)-App erstellt!
WinAppSDK unterstützt benutzerdefinierte WebView2-Umgebungen.
WinAppSDK unterstützt benutzerdefinierte WebView2-Umgebungen ab WinAppSDK 1.5 (1.5.0-experimental2). Weitere Informationen finden Sie unter WinUI3 WebView2 mit einer benutzerdefinierten CoreWebView2Environment.For more information, see WinUI3 WebView2 with a custom CoreWebView2Environment.
Um eine benutzerdefinierte WebView2-Umgebung zu instanziieren, können Sie WebView2 mit einer der Außerkraftsetzungen von WebView2.EnsureCoreWebView2Async
initialisieren (siehe unten), und Ihren benutzerdefinierten CoreWebView2Environment
(und optional auch benutzerdefinierten CoreWebView2ControllerOptions
) übergeben:
public IAsyncAction EnsureCoreWebView2Async (CoreWebView2Environment environment)
public IAsyncAction EnsureCoreWebView2Async (CoreWebView2Environment environment, CoreWebView2ControllerOptions controllerOptions)
Sehen Sie sich auch den Beispielcode unter Deaktivieren der SmartScreen-Navigation unten an.
API-Referenz:
- WebView2.EnsureCoreWebView2Async
- CoreWebView2ControllerOptions
- CoreWebView2Environment
- CoreWebView2EnvironmentOptions
Besondere Überlegungen zu WinUI 3 WebView2
Deaktivieren der SmartScreen-Navigation
WebView2 sendet URLs, zu denen in Ihrer Anwendung navigiert wird, an den SmartScreen-Dienst , um sicherzustellen, dass Ihre Kunden sicher bleiben. Wenn Sie diese Navigation deaktivieren möchten, verwenden Sie ein benutzerdefiniertes CoreWebView2Environment
wie folgt:
CoreWebView2EnvironmentOptions environmentOptions = new CoreWebView2EnvironmentOptions();
environmentOptions.AdditionalBrowserArguments = "--disable-features=msSmartScreenProtection";
string browserFolder = null; // Use null to get default browser folder
string userDataFolder = null; // Use null to get default user data folder
CoreWebView2Environment environment = await CoreWebView2Environment.CreateWithOptionsAsync(
browserFolder, userDataFolder, environmentOptions);
// ...
this.WebView2.EnsureCoreWebView2Async(environment);
Deaktivieren von SmartScreen mithilfe einer Umgebungsvariablen
Es wird nicht mehr empfohlen, eine Umgebungsvariable zu verwenden. Verwenden Sie stattdessen den oben genannten API-codebasierten Ansatz.
Environment.SetEnvironmentVariable("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "--disable-features=msSmartScreenProtection");
Diese Umgebungsvariable muss vor der CoreWebView2
Erstellung festgelegt werden. Dies geschieht, wenn die WebView2.Source-Eigenschaft anfänglich festgelegt oder die WebView2.EnsureCoreWebView2Async-Methode aufgerufen wird.
Festlegen von DefaultBackgroundColor
In WebView2 für WinUI 3 ist die DefaultBackgroundColor
Einstellung für das WebView2-XAML-Objekt vorhanden. Zum Beispiel:
public MainWindow()
{
this.InitializeComponent();
MyWebView.DefaultBackgroundColor = Colors.LightBlue;
}
Transparenz
WinUI 3 unterstützt keine transparenten Hintergründe. Siehe Transparente Hintergrundunterstützung für WebView2? · Problem 2992.
WinAppSDK-Unterstützung für benutzerdefinierte WebView2-Umgebungen
Siehe WinAppSDK unterstützt benutzerdefinierte WebView2-Umgebungen weiter oben.
Siehe auch
- WebView2-API-Referenz
- Einführung in Microsoft Edge WebView2 – Übersicht über Features.
- Verwalten von Benutzerdatenordnern
-
Beispielcode für WebView2 : Eine Anleitung zum
WebView2Samples
Repository. - Bewährte Entwicklungsmethoden für WebView2-AppsEntwicklung bewährte Methoden
developer.microsoft.com:
- Microsoft Edge WebView2 : Erste Einführung in WebView2-Features auf developer.microsoft.com.
GitHub:
- Erste Schritte mit WebView2 in WinUI3
- Spezifikation: Das WebView2-Xaml-Steuerelement – die WinUI 3.0-Version des WebView2-Steuerelements.
- microsoft-ui-xaml-Repository > Probleme : Eingabe winUI-spezifischer Funktionsanforderungen oder -fehler.