Bewährte Entwicklungsmethoden für WebView2-Apps

Wir empfehlen die folgenden bewährten Methoden für die Entwicklung von WebView2-Produktions-Apps.

Verwenden der Evergreen WebView2 Runtime

Für die meisten WebView2-Apps wird empfohlen, anstelle der Laufzeit mit Fixierter Version die Evergreen WebView2-Runtime zu verwenden.

Die Evergreen-Runtime wird automatisch auf dem Client aktualisiert, sodass die neuesten Features und Sicherheitspatches für Ihre WebView2-App verfügbar sind. Die Evergreen-Laufzeit benötigt auch weniger Speicherplatz auf der Festplatte als die Laufzeit mit Fixierter Version. Die Laufzeitverteilung mit Fixierter Version wird nur für Apps empfohlen, die strenge Kompatibilitätsanforderungen haben.

Weitere Informationen finden Sie unter Evergreen im Vergleich zur festen Version der WebView2-Runtime.

Um sicherzustellen, dass Ihre WebView2-App gut mit der Evergreen WebView2-Runtime funktioniert, verwenden Sie die empfohlenen Vorgehensweisen in den folgenden Unterabschnitten:

Stellen Sie sicher, dass die WebView2-Runtime installiert ist.

Wenn Sie die Evergreen WebView2-Runtime verwenden, überprüfen Sie programmgesteuert, bevor Ihre App das WebView2-Steuerelement verwendet, um sicherzustellen, dass die Evergreen WebView2-Runtime auf dem Client installiert ist.

Weitere Informationen finden Sie unter Erkennen, ob eine WebView2-Runtime bereits inVerteilen Ihrer App und der WebView2-Runtime installiert ist.

Verwalten von Updates der WebView2-Runtime

Wenn Sie die Evergreen WebView2-Runtime verwenden, behandeln Sie Evergreen WebView2-Runtime-Updates. Updates der Evergreen WebView2-Runtime werden automatisch heruntergeladen, aber eine ausgeführte WebView2-App verwendet weiterhin ihre aktuelle Version der WebView2-Runtime, wobei möglicherweise Sicherheitsupdates fehlen. Um die neue Version zu übernehmen, muss eine App alle Verweise auf vorherige WebView2-Objekte freigeben oder neu starten. Durch die Implementierung eines NewBrowserVersionAvailable Ereignishandlers werden Benutzer möglicherweise aufgefordert, die App für Updates neu zu starten, mit der Empfehlung, den Benutzerstatus vor dem Beenden für einen nahtlosen Übergang zu speichern.

Weitere Informationen finden Sie unter Behandeln von Evergreen WebView2-Runtimeupdates in Verteilen Ihrer App und der WebView2-Runtime.

Vorwärtskompatibilitätstests mit Edge-Vorschaukanälen durchführen

Wenn Sie die Evergreen WebView2 Runtime verwenden, führen Sie Vorwärtskompatibilitätstests mithilfe der Vorschaukanäle von Microsoft Edge (Beta, Dev oder Canary) aus.

Da die Evergreen-Runtime automatisch aktualisiert wird, sollten Sie regelmäßige Kompatibilitätstests ausführen, um sicherzustellen, dass Ihre WebView2-App auch in der neuen Runtime-Version wie erwartet funktioniert. Testen Sie dazu Ihre Webinhalte im WebView2-Steuerelement anhand der Microsoft Edge-Vorschaukanäle.

Befolgen Sie die Anweisungen in den Vorabversionstests unter Verwendung von Vorschaukanälen von Microsoft Edge und Self-Host, indem Sie Vorschaukanäle bereitstellen.

Featureerkennung für neuere APIs verwenden

Wenn Sie die Evergreen WebView2-Runtime verwenden, verwenden Sie die Featureerkennung, um zu testen, ob die installierte Runtime kürzlich hinzugefügte APIs unterstützt. Um eine WebView2-App auszuführen, die mit einer bestimmten Version des Webview2-SDK entwickelt wurde, muss auf dem Client eine kompatible Version der WebView2-Runtime installiert sein.

Bei Verwendung der Evergreen WebView2-Runtime gibt es einige Szenarien, in denen die Runtime auf einem Client nicht automatisch auf die neueste Version aktualisiert wurde. Darüber hinaus halten einige Gruppenrichtlinien die Aktualisierung der Runtime an. Wenn Sie ein Update an Ihre WebView2-App pushen, funktioniert die App daher möglicherweise nicht, wenn sie versucht, neuere APIs aufzurufen, die in der installierten Laufzeit des Clients nicht verfügbar sind. Daher sollten Sie die Featureerkennung verwenden, um sicherzustellen, dass die neueren APIs, die von Ihrer WebView2-App verwendet werden, von der WebView2-Runtime unterstützt werden, die auf dem Client installiert ist.

Siehe Featureerkennung, um zu testen, ob die installierte Runtime kürzlich hinzugefügte APIs in Vorabversions- und Release-SDKs für WebView2 unterstützt.

Regelmäßiges Aktualisieren bei Verwendung der Laufzeit mit Fixierter Version

Wenn Sie die WebView2-Runtime mit Fixierter Version verwenden, stellen Sie sicher, dass Sie die WebView2-Runtime, die mit Ihrer App verpackt ist, regelmäßig aktualisieren, um Sicherheitsrisiken zu reduzieren. Um zu bestimmen, wie oft Sie die Laufzeit mit Fixierter Version aktualisieren sollten, sollten Sie das Bedrohungsmodell Ihrer App berücksichtigen. Wenn Sie beispielsweise Inhalte von Drittanbietern in Webview2-Apps verwenden, betrachten Sie die Inhalte immer als nicht vertrauenswürdig.

Siehe:

Verwalten der Lebensdauer des Benutzerdatenordners

WebView2-Apps erstellen einen Benutzerdatenordner, um Daten wie Cookies, Anmeldeinformationen und Berechtigungen zu speichern. Nach dem Erstellen des Benutzerdatenordners ist Ihre App für die Verwaltung der Lebensdauer des Benutzerdatenordners verantwortlich. Beispielsweise muss Ihre App eine Bereinigung durchführen, wenn die App deinstalliert wird.

Siehe:

Behandeln von Fehlern oder Beendigungen von Laufzeitprozessen

WebView2-Apps werden von einer Sammlung von Laufzeitprozessen unterstützt, die neben dem App-Prozess ausgeführt werden. Diese unterstützenden Laufzeitprozesse können aus verschiedenen Gründen fehlschlagen, z. B. weil nicht genügend Arbeitsspeicher verfügbar ist oder sie vom Benutzer beendet werden. Ihre WebView2-App sollte diese prozessbezogenen Ereignisse behandeln, um sicherzustellen, dass die App nach Fehlern wiederhergestellt und weiterhin reibungslos ausgeführt werden kann.

Weitere Informationen finden Sie unter Behandeln prozessbezogener Ereignisse in WebView2.

Ereignishandler für das Umgebungsobjekt

Wenn einer der Ereignishandler Ihrer App für das CoreWebView2Environment Objekt einen Verweis auf das Umgebungsobjekt enthält und die App den Verweis auf die Umgebung und die Ereignishandler einfach freigibt, ohne die Ereignishandler zu entfernen, kann es zu einem Zirkelverweis zwischen dem Umgebungsobjekt und den Handlerobjekten kommen, wodurch Speicher verloren geht.

So verhindern Sie einen solchen Speicherverlust:

  • Entfernen Sie für jeden hinzugefügten Ereignishandler den Ereignishandler, bevor Sie das Umgebungsobjekt freigeben.

  • Vermeiden Sie es, einen Verweis auf das Umgebungsobjekt in einem Ereignishandler zu halten. Stattdessen kann der Ereignishandler über das sender Argument des Rückrufs "event complete" auf das Umgebungsobjekt zugreifen.

  • Wenn die App einen Verweis auf ein WebView2-Objekt enthalten soll, verwenden Sie nach Möglichkeit einen schwachen Verweis.

Befolgen bewährter Sicherheitsmethoden

WebView2 ermöglicht Ihnen das Hosten von Webinhalten in Ihren nativen Anwendungen und bietet Vorteile wie die Verwendung der webbasierten Benutzeroberfläche, den Zugriff auf Features der Webplattform und die plattformübergreifende Codefreigabe.

Das Hosten von Webinhalten kann jedoch auch Schwachstellen mit sich bringen. Um Sicherheitsrisiken zu vermeiden, die beim Hosten von Webinhalten in einer nativen Anwendung entstehen können, stellen Sie sicher, dass Sie Ihre WebView2-Anwendung so entwerfen, dass die Interaktionen zwischen dem Webinhalt und der Hostanwendung genau überwacht werden.

Folgen Sie den Anweisungen unter Entwickeln sicherer WebView2-Apps.

Siehe auch

WebView2-Referenz:

Dokumentation für Microsoft Edge Enterprise: