Partager via


Bonnes pratiques de développement pour les applications WebView2

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

Utiliser le runtime WebView2 Evergreen

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

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 version fixe. La distribution du runtime de version fixe est recommandée uniquement pour les applications qui ont des exigences de compatibilité strictes.

Pour plus d’informations sur les avantages du runtime Evergreen, consultez Détails sur le mode de distribution du runtime evergreen dans Distribuer votre application et le runtime WebView2.

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

Vérifiez que le runtime WebView2 est installé

Lorsque vous utilisez le runtime Evergreen WebView2, avant que votre application n’utilise le contrôle WebView2, vérifiez par programme que le runtime Evergreen WebView2 est installé sur le client.

Consultez 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

Lorsque vous utilisez le runtime Evergreen WebView2, gérez les mises à jour du runtime Evergreen WebView2. Les mises à jour du runtime Evergreen WebView2 sont téléchargées automatiquement, mais une application WebView2 en cours d’exécution continuera d’utiliser sa version actuelle du runtime WebView2, ce qui risque de 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 NewBrowserVersionAvailable gestionnaire d’événements peut inviter les utilisateurs à redémarrer l’application pour les mises à jour, avec une recommandation d’enregistrer l’état utilisateur avant de quitter pour une transition transparente.

Consultez Gérer les mises à jour du runtime WebView2 persistant dans Distribuer votre application et le runtime WebView2.

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

Lorsque vous utilisez le runtime Evergreen WebView2, exécutez des tests de compatibilité avant à l’aide des canaux de préversion de Microsoft Edge (bêta, dev ou canary).

Étant donné que le runtime persistant est mis à jour automatiquement, vous devez exécuter régulièrement des tests de compatibilité pour vous assurer que votre application WebView2 continuera de 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 de préversion De Microsoft Edge.

Suivez les instructions de Test de préversion à l’aide de canaux en préversion et auto-hôte en déployant des canaux en préversion.

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

Lorsque vous utilisez le runtime Evergreen WebView2, utilisez la détection des 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 Kit de développement logiciel (SDK) Webview2, une version compatible du runtime WebView2 doit être installée sur le client.

Lors de l’utilisation du runtime Evergreen WebView2, il existe des scénarios dans lesquels le runtime sur un client n’a pas été automatiquement mis à jour vers la dernière version. En outre, certaines stratégies de groupe interrompent la mise à jour du runtime. Par conséquent, lorsque vous envoyez une mise à jour à votre application WebView2, l’application risque de 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 des 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.

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

Mettre à jour régulièrement si vous utilisez le runtime de version fixe

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

Consultez Détails sur le mode de distribution du runtime version fixe dans Distribuer votre application et le runtime WebView2.

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 des cookies, des informations d’identification et des 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 lorsque l’application est désinstallée.

Pour plus d’informations sur la gestion du dossier de données utilisateur, consultez Gérer les dossiers de données utilisateur .

Gérer les échecs ou les sorties 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 que l’épuisement de la mémoire ou l’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 défaillances et continuer à s’exécuter correctement.

Pour plus d’informations sur la gestion des événements liés aux processus dans WebView2, consultez Gestion des événements liés aux processus dans les applications WebView2.

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

Si l’un des gestionnaires d’événements de votre application sur l’objet d’environnement 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 gestionnaire, 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 « event completed ».

  • 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 meilleures 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 multiplateforme.

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

Suivez les instructions fournies dans Développer des applications WebView2 sécurisées.