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
Es wird empfohlen, die Evergreen WebView2-Runtime für die meisten WebView2-Apps zu verwenden, anstatt die Runtime für feste Versionen 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-Runtime benötigt auch weniger Speicherplatz auf dem Datenträger als die Runtime mit fester Version. Die Laufzeitverteilung mit fester Version wird nur für Apps empfohlen, für die strenge Kompatibilitätsanforderungen gelten.
Weitere Informationen zu den Vorteilen der Evergreen Runtime finden Sie unter Details zum Evergreen Runtime-Verteilungsmodus unter Verteilen Ihrer App und der WebView2-Runtime.
Um sicherzustellen, dass Ihre WebView2-App gut mit der Evergreen WebView2 Runtime funktioniert, verwenden Sie die empfohlenen Methoden in den folgenden Unterabschnitten:
- Überprüfen Sie, ob die WebView2-Runtime installiert ist.
- Behandeln von Updates der WebView2-Runtime.
- Führen Sie Vorwärtskompatibilitätstests mithilfe von Edge-Vorschaukanälen durch.
- Verwenden Sie die Featureerkennung für neuere APIs.
Überprüfen Sie, ob die WebView2-Runtime installiert ist.
Wenn Sie evergreen WebView2 Runtime verwenden, überprüfen Sie programmgesteuert, ob die Evergreen WebView2-Runtime auf dem Client installiert ist, bevor Ihre App das WebView2-Steuerelement verwendet.
Weitere Informationen finden Sie unter Verteilen Der App und der WebView2-Runtimefinden Sie unter Erkennen, ob eine WebView2-Runtime bereits installiert ist.
Behandeln von Updates der WebView2-Runtime
Wenn Sie evergreen WebView2 Runtime verwenden, verarbeiten 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, möglicherweise fehlen Sicherheitsupdates. Um die neue Version zu übernehmen, muss eine App alle Verweise auf frühere WebView2-Objekte freigeben oder neu starten. Durch die Implementierung eines NewBrowserVersionAvailable
Ereignishandlers können Benutzer aufgefordert werden, die App für Updates neu zu starten. Es wird empfohlen, den Benutzerstatus zu speichern, bevor sie für einen nahtlosen Übergang beendet wird.
Weitere Informationen finden Sie unter Behandeln von Evergreen WebView2 Runtime-Updates unter Verteilen Ihrer App und der WebView2-Runtime.
Durchführen von Vorwärtskompatibilitätstests mithilfe von Edge-Vorschaukanälen
Führen Sie bei Verwendung der Evergreen WebView2 Runtime Mithilfe der Vorschaukanäle von Microsoft Edge (Beta, Dev oder Canary) Vorwärtskompatibilitätstests aus.
Da evergreen Runtime automatisch aktualisiert wird, sollten Sie regelmäßig Kompatibilitätstests ausführen, um sicherzustellen, dass Ihre WebView2-App unter der neuen Runtime-Version weiterhin wie erwartet funktioniert. Dazu können Sie Ihre Webinhalte im WebView2-Steuerelement mit den Microsoft Edge-Vorschaukanälen testen.
Befolgen Sie die Anleitung unter Vorabversionstests mit Vorschaukanälen und Selfhosting durch Bereitstellen von Vorschaukanälen.
Verwenden der Featureerkennung für neuere APIs
Verwenden Sie bei Verwendung der Evergreen WebView2 Runtime die Featureerkennung, um zu testen, ob die installierte Runtime kürzlich hinzugefügte APIs unterstützt. Zum Ausführen einer WebView2-App, 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 daher ein Update an Ihre WebView2-App pushen, funktioniert die App möglicherweise nicht, wenn sie versucht, neuere APIs aufzurufen, die in der installierten Runtime 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.
Informationen zum Testen, ob die installierte Runtime kürzlich hinzugefügte APIs unterstützt , finden Sie unter Featureerkennung in Vorabversion und Release-SDKs für WebView2.
Regelmäßiges Aktualisieren bei Verwendung der Fixed Version Runtime
Wenn Sie die Feste Version WebView2 Runtime verwenden, stellen Sie sicher, dass Sie die WebView2-Runtime regelmäßig aktualisieren, die mit Ihrer App gepackt ist, um Sicherheitsrisiken zu reduzieren. Um zu bestimmen, wie oft Sie die Fixed Version Runtime aktualisieren sollten, sollten Sie das Bedrohungsmodell Ihrer App berücksichtigen. Wenn Sie beispielsweise Inhalte von Drittanbietern in Webview2-Apps verwenden, sollten Sie die Inhalte immer als nicht vertrauenswürdig betrachten.
Weitere Informationen zum Laufzeitverteilungsmodus für feste Versionen finden Sie unter Verteilen Ihrer App und webView2 Runtime.
Verwalten der Lebensdauer des Benutzerdatenordners
WebView2-Apps erstellen einen Benutzerdatenordner zum Speichern von Daten wie Cookies, Anmeldeinformationen und Berechtigungen. Nach dem Erstellen des Benutzerdatenordners ist Ihre App für die Verwaltung der Lebensdauer des Benutzerdatenordners verantwortlich. Ihre App muss beispielsweise eine Bereinigung durchführen, wenn die App deinstalliert wird.
Weitere Informationen zum Verwalten des Benutzerdatenordners finden Sie unter Verwalten von Benutzerdatenordnern .
Behandeln von Laufzeitprozessfehlern oder -beendigungen
WebView2-Apps werden von einer Sammlung von Laufzeitprozessen unterstützt, die zusammen mit dem App-Prozess ausgeführt werden. Diese unterstützenden Laufzeitprozesse können aus verschiedenen Gründen fehlschlagen, z. B. wenn der Arbeitsspeicher nicht ausreicht oder vom Benutzer beendet wird. Ihre WebView2-App sollte diese prozessbezogenen Ereignisse verarbeiten, um sicherzustellen, dass die App nach Fehlern wiederhergestellt werden kann und weiterhin reibungslos ausgeführt wird.
Weitere Informationen zum Behandeln prozessbezogener Ereignisse in WebView2 finden Sie unter Behandeln prozessbezogener Ereignisse in WebView2-Apps.
Ereignishandler für das Umgebungsobjekt
Wenn einer der Ereignishandler Ihrer App für das Umgebungsobjekt einen Verweis auf das Umgebungsobjekt enthält und die App einfach den Verweis auf die Umgebung und die Ereignishandler freigibt, ohne die Ereignishandler zu entfernen, gibt es möglicherweise einen Zirkelverweis zwischen dem Umgebungsobjekt und Handlerobjekten, wodurch Arbeitsspeicher verloren geht.
Um einen solchen Speicherverlust zu verhindern:
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 speichern. Stattdessen kann der Ereignishandler über das Argument des Rückrufs "event completed" auf das
sender
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
Mit WebView2 können Sie Webinhalte in Ihren nativen Anwendungen hosten, was Vorteile bietet, z. B. die Verwendung einer webbasierten Benutzeroberfläche, den Zugriff auf Features der Webplattform und die plattformübergreifende Freigabe von Code.
Das Hosten von Webinhalten kann jedoch auch Sicherheitsrisiken mit sich bringen. Um Sicherheitsrisiken zu vermeiden, die durch das Hosten von Webinhalten in einer nativen Anwendung entstehen können, stellen Sie sicher, dass Sie Ihre WebView2-Anwendung so entwerfen, dass Interaktionen zwischen dem Webinhalt und der Hostanwendung genau überwacht werden.
Befolgen Sie die Anleitung unter Entwickeln sicherer WebView2-Apps.