Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez Microsoft Visual Studio Code pour déboguer des scripts qui s’exécutent dans les contrôles WebView2.
Contenu détaillé :
- Introduction
- Créer un fichier launch.json
- Déboguer votre code
- Débogage WebView2 ciblé
- Déboguer les processus en cours d’exécution
- Options de suivi de débogage
- Débogage des compléments Office
- Débogage d’applications WebView2 WinUI 2 (UWP)
- Mappages source avec l’événement WebResourceRequested ou le mappage de nom d’hôte virtuel
- Dépanner le débogueur
- Voir aussi
Introduction
Utilisez Microsoft Visual Studio Code pour déboguer des scripts qui s’exécutent dans les contrôles WebView2.
Visual Studio Code dispose d’un débogueur intégré pour le débogage du navigateur. Consultez Débogage du navigateur dans VS Code.
Créer un fichier launch.json
Pour déboguer votre code, votre projet doit avoir un launch.json fichier. Un launch.json fichier est un fichier de configuration du débogueur permettant de configurer et de personnaliser le débogueur de Visual Studio Code. L’une des propriétés nécessaires pour configurer le débogueur est la request propriété. Il en existe deux request types : launch et attach.
Le code suivant illustre le lancement de l’application à partir de Visual Studio Code (plutôt que d’attacher le débogueur à une instance en cours d’exécution de l’application). Pour ce faire, l’application doit avoir été créée au préalable. Si votre projet n’a launch.json pas de fichier, créez un launch.json fichier dans le .vscode sous-dossier de votre projet actuel, puis collez-y le code suivant :
"name": "Hello debug world",
"type": "msedge",
"port": 9222, // The port value is optional, and the default value is 9222.
"request": "launch",
"runtimeExecutable": "C:/path/to/your/webview2/app.exe",
"env": {
// The following variable is needed when the "runtimeExecutable" property is set.
// The port number below must match the value of the "port" property above.
"WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS": "--remote-debugging-port=9222"
// Customize for your app location.
"Path": "%path%;e:/path/to/your/app/location; "
},
"useWebView": true,
// The following two lines set up source path mapping, where "url" is the start page
// of your app, and "webRoot" is the top-level directory containing all your code files.
"url": "file:///${workspaceFolder}/path/to/your/toplevel/foo.html",
"webRoot": "${workspaceFolder}/path/to/your/assets"
Utilisation d’une valeur de Registre
Au lieu de définir la variable d’environnement WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS , vous pouvez ajouter une nouvelle valeur de Registre nommée <myApp.exe> avec des données --remote-debugging-port=9222 au Registre sous la clé Computer\HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArgumentsde Registre , afin que le débogueur puisse trouver le port approprié. Pour plus d’informations, consultez Indicateurs de navigateur WebView2.
Paramètre d’URL de ligne de commande transmis dans
Le mappage de chemin d’accès source de Visual Studio Code nécessite désormais une URL, de sorte que votre application reçoit désormais un url paramètre de ligne de commande au démarrage. Vous pouvez ignorer le url paramètre en toute sécurité, si nécessaire.
Déboguer votre code
Pour définir un point d’arrêt dans votre code source, cliquez sur une ligne de code, puis appuyez sur F9 :
Sous l’onglet Exécuter , sélectionnez la configuration de lancement dans le menu déroulant.
Cliquez sur Démarrer le débogage, qui est le triangle vert en regard de la liste déroulante de la configuration de lancement :
Pour afficher la sortie de débogage et les erreurs, ouvrez la console de débogage :
Débogage WebView2 ciblé
Dans certaines applications WebView2, vous pouvez utiliser plusieurs contrôles WebView2. Pour choisir le contrôle WebView2 à déboguer dans cette situation, vous pouvez utiliser le débogage WebView2 ciblé.
Ouvrez launch.json et effectuez les actions suivantes pour utiliser le débogage WebView2 ciblé.
Vérifiez que le
useWebviewparamètre est défini surtrue.Ajoutez le
urlFilterparamètre. Lorsque le contrôle WebView2 navigue vers une URL, la valeur duurlFilterparamètre est utilisée pour comparer les chaînes qui apparaissent dans l’URL.
"useWebview": "true",
"urlFilter": "*index.ts",
// Options for "urlFilter":
// Match any url that ends with "index.ts":
"urlFilter": "*index.ts",
// Match any url that contains "index" anywhere in the URL:
"urlFilter": "*index*",
// Explicitly match a file named "index.ts":
"urlFilter": "file://C:/path/to/my/index.ts",
Lors du débogage de votre application, vous devrez peut-être parcourir le code depuis le début du processus de rendu. Si vous effectuez le rendu de pages web sur des sites et que vous n’avez pas accès au code source, vous pouvez utiliser l’option ?=value , car les pages web ignorent les paramètres non reconnus.
Impossible de déboguer deux contrôles WebView2 en même temps
Une fois la première correspondance trouvée dans l’URL, le débogueur s’arrête. Vous ne pouvez pas déboguer deux contrôles WebView2 en même temps, car le port CDP est partagé par tous les contrôles WebView2 et utilise un seul numéro de port.
Déboguer les processus en cours d’exécution
Vous devrez peut-être attacher le débogueur aux processus WebView2 en cours d’exécution. Pour ce faire, dans , mettez à launch.jsonjour le request paramètre en changeant sa valeur sur attach:
"name": "Hello debugging world",
"type": "msedge",
"port": 9222,
"request": "attach",
"runtimeExecutable": "C:/path/to/your/webview2/myApp.exe",
"env": {
"Path": "%path%;e:/path/to/your/build/location; "
}
Votre contrôle WebView2 doit ouvrir le port Chrome Developer Protocol (CDP) pour permettre le débogage du contrôle WebView2. Votre code doit être créé pour s’assurer qu’un seul contrôle WebView2 a un port CDP ouvert, avant de démarrer le débogueur.
Vous devez également ajouter une nouvelle clé <myApp.exe> = --remote-debugging-port=9222 de Registre sous Computer\HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments, afin que le débogueur puisse trouver le port approprié. Pour ajouter cette clé de Registre :
Appuyez sur la touche Windows , puis recherchez Éditeur du Registre. Ouvrez l’application Éditeur du Registre , puis cliquez sur Oui pour autoriser la modification.
Dans l’arborescence des dossiers à gauche, essayez de développer
HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments.Si la
\Edge\WebView2\AdditionalBrowserArgumentspartie de ce chemin d’accès n’existe pas, créez ces trois sous-dossiers imbriqués, comme suit :Pour créer le sous-dossier : Dans l’arborescence
\Edgedes dossiers, cliquez avec le bouton droit sur leHKEY_CURRENT_USER\Software\Policies\Microsoftdossier, pointez sur Nouveau, puis sélectionnez Clé. Un dossier est ajouté en tant qu’enfant duMicrosoftdossier, initialement nomméNew Key #1. Cliquez avec le bouton droit sur leNew Key #1dossier, puis sélectionnez Renommer. EntrezEdgele nom de la nouvelle clé.Créez le
\WebView2sous-dossier, comme à l’étape précédente.Créez le
\AdditionalBrowserArgumentssous-dossier, comme à l’étape précédente.L’arborescence est désormais étendue à
HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments.
Cliquez avec le bouton droit sur le
AdditionalBrowserArgumentsdossier, pointez sur Nouveau, puis sélectionnez Valeur de chaîne. Dans la colonne Nom , cliquez avec le bouton droit surNew Value #1, sélectionnez Renommer, puis entrez le nom de fichier de l’exécutable de votre application, tel quemyApp.exe.Dans la colonne Nom , cliquez avec le bouton droit sur le nom de votre fichier exécutable, par
myApp.exeexemple, puis sélectionnez Modifier. La boîte de dialogue Modifier la chaîne s’ouvre.Dans la zone de texte Données de la valeur , entrez
--remote-debugging-port=9222:
Cliquez sur le bouton OK , puis vérifiez que la clé de Registre correspond aux éléments suivants (avec le nom de votre
.exefichier dans la colonne Nom ) :
Utilisation d’une variable d’environnement
Au lieu d’ajouter la clé de Registre ci-dessus, vous pouvez définir la variable d’environnement WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS sur --remote-debugging-port=9222. Assurez-vous que votre application est démarrée après la définition de la variable d’environnement et que votre application hérite de la variable d’environnement. Pour plus d’informations, consultez Indicateurs de navigateur WebView2.
Options de suivi de débogage
Pour activer le suivi de débogage, ajoutez le trace paramètre à launch.json , comme suit :
- Ajoutez le
traceparamètre :
"name": "Hello debugging world",
"type": "msedge",
"port": 9222,
"request": "attach",
"runtimeExecutable": "C:/path/to/your/webview2/app.exe",
"env": {
"Path": "%path%;e:/path/to/your/build/location; "
},
"useWebView": true
,"trace": true // Turn on debug tracing, and save the output to a log file.
Enregistrement de la sortie de débogage dans un fichier journal :
,"trace": "verbose" // Turn on verbose tracing in the Debug Output pane.
Sortie de Visual Studio Code dans le volet DEBUG CONSOLE, avec le traçage détaillé activé :
Débogage des compléments Office
Si vous déboguez des compléments Office, ouvrez le code source du complément dans une instance distincte de Visual Studio Code. Ouvrez launch.json dans votre application WebView2. Ajoutez le code suivant dans launch.jsonpour attacher le débogueur au complément Office :
,"debugServer": 4711
Débogage d’applications WebView2 WinUI 2 (UWP)
Installer une version du runtime WebView2 antérieure au .
106.0.1370.34Ouvrez l’Éditeur du Registre en appuyant sur la touche Windows , puis en recherchant Éditeur du Registre. Ouvrez l’application Éditeur du Registre et sélectionnez Oui pour autoriser la modification.
Définissez la clé
HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArgumentsde Registre sur--remote-debugging-pipe. Pour ce faire, suivez les étapes décrites dans la section Déboguer les processus d’exécution ci-dessus.Vérifiez que la clé de Registre est définie dans l’éditeur et qu’elle correspond aux éléments suivants :
Ajoutez une nouvelle configuration à votre
launch.jsonfichier. Ouvrezlaunch.jsonet ajoutez le code suivant :"name": "Attach to UWP App", "useWebView":{ "pipeName":"JSDebugPipe" } "request": "attach", "type": "msedge", "webRoot":"${workspaceFolder}"Lancez votre application.
Cliquez sur le bouton Démarrer le débogage pour l’attacher au processus et commencer le débogage.
Cartes source avec le mappage de nom d’hôte virtuel ou d’événement WebResourceRequested
Les mappages sources sont nécessaires pour déboguer le code source du contenu compilé, notamment :
- JavaScript transpilé, tel que TypeScript ou JavaScript minifié.
- CSS compilé, tel que SASS ou SCSS.
WebView2 ne charge pas les cartes sources qui sont référencées par le contenu qui a été chargé en utilisant l’une ou l’autre approche :
L’événement
WebResourceRequested. Voir :-
Chargement de contenu local en gérant l’événement
WebResourceRequesteddans Utilisation de contenu local dans les applications WebView2. -
La source correspond à l’événement
WebResourceRequesteddans Utilisation du contenu local dans les applications WebView2.
-
Chargement de contenu local en gérant l’événement
Mappage de noms d’hôtes virtuels. Voir :
- Chargement de contenu local à l’aide du mappage de nom d’hôte virtuel dans Utilisation de contenu local dans les applications WebView2.
- Cartes sources avec mappage de nom d’hôte virtuel dans Utilisation du contenu local dans les applications WebView2.
Dépanner le débogueur
Vous pouvez rencontrer ces scénarios lors de l’utilisation du débogueur.
Ne s’arrête pas au point d’arrêt
Si le débogueur ne s’arrête pas au point d’arrêt et que vous avez une sortie de débogage :
Pour résoudre le problème, vérifiez que le fichier avec le point d’arrêt est le même que celui utilisé par le contrôle WebView2. Le débogueur n’effectue pas de mappage de chemin source.
Impossible d’attacher au processus en cours d’exécution
Si vous ne pouvez pas l’attacher à un processus en cours d’exécution et que vous obtenez une erreur de délai d’attente :
Pour résoudre le problème, vérifiez que le contrôle WebView2 a ouvert le port CDP. Vérifiez que votre additionalBrowserArguments valeur dans le Registre est correcte ou que les options sont correctes. Consultez additionalBrowserArguments pour dotnet et additionalBrowserArguments pour Win32.
Voir aussi
- Mise en place de WebView2
- Référentiel WebView2Samples : un exemple complet des fonctionnalités de WebView2.
- Référence de l’API WebView2