Meilleures pratiques de développement pour les applications WebView2

Nous recommandons les meilleures pratiques suivantes pour le développement d’applications WebView2 de production.

Utilisation du runtime Evergreen WebView2

Nous vous recommandons d’utiliser le runtime Evergreen WebView2 pour la plupart des applications WebView2, plutôt que d’utiliser le runtime Fixed Version.

Le runtime Evergreen se met automatiquement à jour sur le client, afin que les dernières fonctionnalités et correctifs de sécurité soient disponibles pour votre application WebView2. Le runtime Evergreen nécessite également moins d’espace de stockage sur le disque que le runtime Fixed Version. La distribution du runtime de version fixe est recommandée uniquement pour les applications qui ont des exigences strictes en matière de compatibilité.

Voir Evergreen et version fixe du runtime WebView2.

Pour vous assurer que votre application WebView2 fonctionne correctement avec Evergreen WebView2 Runtime, utilisez les pratiques recommandées dans les sous-sections ci-dessous :

Vérifiez que le runtime WebView2 est installé

Lors de l’utilisation d’Evergreen WebView2 Runtime, avant que votre application n’utilise le contrôle WebView2, vérifiez par programme par case activée que Evergreen WebView2 Runtime est installé sur le client.

Voir Détecter si un runtime WebView2 est déjà installé dans Distribuer votre application et le runtime WebView2.

Gérer les mises à jour du runtime WebView2

Lors de l’utilisation du runtime Evergreen WebView2, gérez les mises à jour du runtime Evergreen WebView2. Les mises à jour d’Evergreen WebView2 Runtime sont automatiquement téléchargées, mais une application WebView2 en cours d’exécution continuera d’utiliser sa version actuelle du WebView2 Runtime, ce qui peut manquer des mises à jour de sécurité. Pour adopter la nouvelle version, une application doit libérer toutes les références aux objets WebView2 précédents ou redémarrer. L’implémentation d’un gestionnaire d’événements NewBrowserVersionAvailable peut inviter les utilisateurs à redémarrer l’application pour les mises à jour, avec une recommandation d’enregistrer l’état de l’utilisateur avant de quitter pour une transition transparente.

Voir Gérer les mises à jour d’Evergreen WebView2 Runtime dans Distribuer votre application et WebView2 Runtime.

Effectuer des tests de compatibilité descendante à l’aide des canaux d’aperçu Edge

Lors de l’utilisation du runtime Evergreen WebView2, exécutez des tests de compatibilité descendante à l’aide des canaux de prévisualisation de Microsoft Edge (Beta, Dev ou Canary).

Étant donné que le runtime Evergreen se met à jour automatiquement, vous devez effectuer régulièrement des tests de compatibilité pour vous assurer que votre application WebView2 continuera à fonctionner comme prévu sur la nouvelle version du runtime. Pour ce faire, testez votre contenu web dans le contrôle WebView2 par rapport aux canaux d’aperçu Microsoft Edge.

Suivez les instructions des tests de préversion à l’aide des canaux de prévisualisation de Microsoft Edge et auto-hébergé en déployant des canaux de prévisualisation.

Utiliser la détection de fonctionnalités pour les API les plus récentes

Lorsque vous utilisez Evergreen WebView2 Runtime, utilisez la détection de fonctionnalités pour tester si le Runtime installé prend en charge les API récemment ajoutées. Pour exécuter une application WebView2 développée avec une version particulière du SDK Webview2, le client doit disposer d’une version compatible du runtime WebView2 installée.

Lors de l’utilisation du runtime Evergreen WebView2, dans certains scénarios, le runtime sur un client n’a pas été automatiquement mis à jour vers la dernière version. En outre, certaines stratégies de groupe suspendent la mise à jour du runtime. Par conséquent, lorsque vous envoyez une mise à jour à votre application WebView2, l’application peut ne pas fonctionner si elle tente d’appeler des API plus récentes qui ne sont pas disponibles dans le runtime installé du client. Par conséquent, vous devez utiliser la détection de fonctionnalités pour vous assurer que les API les plus récentes utilisées par votre application WebView2 sont prises en charge par le runtime WebView2 installé sur le client.

Voir Détection des fonctionnalités pour tester si le runtime installé prend en charge les API récemment ajoutées dans les SDK de préversion et de publication pour WebView2.

Mettre à jour régulièrement si vous utilisez Fixed Version Runtime

Si vous utilisez le runtime WebView2 Fixed Version, veillez à mettre régulièrement à jour le runtime WebView2 fourni avec votre application, afin de réduire les risques de sécurité. Pour déterminer la fréquence à laquelle vous devez mettre à jour Fixed Version Runtime, vous devez prendre en compte le modèle de menace de votre application. Par exemple, lorsque vous utilisez du contenu tiers dans les applications Webview2, considérez toujours le contenu comme non fiable.

Voir :

Gérer la durée de vie du dossier de données utilisateur

Les applications WebView2 créent un dossier de données utilisateur pour stocker des données telles que les cookies, les informations d’identification et les autorisations. Après avoir créé le dossier de données utilisateur, votre application est responsable de la gestion de la durée de vie du dossier de données utilisateur. Par exemple, votre application doit effectuer un nettoyage lorsqu’elle est désinstallée.

Voir :

Gérer les échecs ou les arrêts de processus d’exécution

Les applications WebView2 sont prises en charge par une collection de processus d’exécution qui s’exécutent parallèlement au processus d’application. Ces processus d’exécution de prise en charge peuvent échouer pour diverses raisons, telles qu’un manque de mémoire ou leur arrêt par l’utilisateur. Votre application WebView2 doit gérer ces événements liés au processus, afin de s’assurer que l’application peut récupérer après des échecs et continuer à fonctionner sans problème.

Voir Gestion des événements liés au processus dans WebView2.

Gestionnaires d’événements sur l’objet d’environnement

Si l’un des gestionnaires d’événements de votre application sur l’objet CoreWebView2Environment contient une référence à l’objet d’environnement et que l’application libère simplement la référence à l’environnement et aux gestionnaires d’événements sans supprimer les gestionnaires d’événements, il peut y avoir une référence circulaire entre l’objet d’environnement et les objets gestionnaires, ce qui entraîne une fuite de mémoire.

Pour éviter une telle fuite de mémoire :

  • Pour tout gestionnaire d’événements ajouté, supprimez le gestionnaire d’événements avant de libérer l’objet d’environnement.

  • Évitez de conserver une référence à l’objet d’environnement dans un gestionnaire d’événements. Au lieu de cela, le gestionnaire d’événements peut accéder à l’objet d’environnement à partir de l’argument sender du rappel « événement terminé ».

  • Si vous souhaitez que l’application contienne une référence à un objet WebView2, utilisez une référence faible dans la mesure du possible.

Suivre les bonnes pratiques de sécurité

WebView2 vous permet d’héberger du contenu Web dans vos applications natives, offrant des avantages tels que l’utilisation de l’interface utilisateur Web, l’accès aux fonctionnalités de la plateforme Web et le partage de code entre plateformes.

Toutefois, l’hébergement de contenu web peut également introduire des vulnérabilités. Pour éviter les vulnérabilités qui peuvent résulter de l’hébergement de contenu Web dans une application native, assurez-vous de concevoir votre application WebView2 pour surveiller de près les interactions entre le contenu Web et l’application hôte.

Suivez les instructions de la section Développer des applications WebView2 sécurisées.

Voir aussi

Référence WebView2 :

Documentation Microsoft Edge Entreprise :