Depuración de aplicaciones WebView2 con Visual Studio
Microsoft Visual Studio proporciona varias herramientas de depuración para código nativo y web en aplicaciones WebView2, para depurar código web y nativo en aplicaciones Win32 o complementos de Office. Este artículo se centra en la depuración de controles WebView2. Los demás métodos de depuración en Visual Studio también están disponibles.
Resumen de los pasos de alto nivel
Para depurar código JavaScript en un control WebView2:
Instale el componente de diagnóstico de JavaScript en la carga de trabajo Desarrollo de escritorio con C++ de Visual Studio o en la carga de trabajo de otra plataforma.
Establezca un punto de interrupción en una línea de código JavaScript.
En la páginaDepuración de propiedades> del proyecto, establezca Tipo de depurador en JavaScript (WebView2) (en lugar de Auto o Nativo).
Inicie el depurador, como de costumbre. Por ejemplo, en la barra de menús, seleccione Depurar>iniciar depuración (F5).
En la aplicación WebView2 en ejecución, interactúe con una página web que ejecute el código JavaScript. El depurador se detiene en la línea de código JavaScript que tiene el punto de interrupción.
Use los paneles del depurador en Visual Studio.
Estos pasos se detallan a continuación, con el ejemplo principal de Win32/C++ (WebView2APISample).
Requisitos
Clone el repositorio WebView2Samples si desea seguir los pasos de ejemplo específicos que se indican a continuación (con el ejemplo principal de Win32/C++, WebView2APISample). En un paso siguiente se muestra cómo hacerlo.
Instale Visual Studio 2022. Puede usar Visual Studio 2022 para trabajar con las aplicaciones de ejemplo WebView2 y su propia aplicación WebView2. (Visual Studio 2019 también funciona). En un paso siguiente se muestra cómo hacerlo.
Instale y configure las herramientas del depurador de scripts en Visual Studio. Es decir, instale la carga de trabajo Desarrollo de escritorio con C++ de Visual Studio (o la carga de trabajo equivalente para un lenguaje diferente), incluido su componente de diagnóstico de JavaScript . En un paso siguiente se muestra cómo hacerlo.
Compile y ejecute el ejemplo principal de Win32/C++, para que la aplicación WebView2APISample se compile y ejecute (si desea seguir los pasos de ejemplo específicos que se indican a continuación). En un paso siguiente se muestra cómo hacerlo.
Para depurar scripts, la aplicación debe iniciarse desde Visual Studio.
No se puede asociar un depurador a un proceso WebView2 en ejecución.
Instalación del componente de diagnóstico de JavaScript
Use la Instalador de Visual Studio para instalar la carga de trabajo Desarrollo de escritorio con C++ de Visual Studio, incluido su componente de diagnóstico de JavaScript, como se indica a continuación. O bien, si usa una carga de trabajo de lenguaje distinta de C++, seleccione el componente de diagnóstico de JavaScript de esa carga de trabajo, de forma similar a los pasos siguientes.
Si aún no lo ha hecho, clone el repositorio WebView2Samples, como se describe en Clonación del repositorio WebView2Samples en Configuración del entorno de desarrollo para WebView2.
Si aún no lo ha hecho, instale Visual Studio 2022, como se describe en Instalación de Visual Studio en Configuración del entorno de desarrollo para WebView2.
En Visual Studio 2022, instale la carga de trabajo Desarrollo de escritorio con C++ , como se indica a continuación:
En la barra del Explorador de Windows, escriba
Visual Studio Installer
.Seleccione Instalador de Visual Studio para abrirlo.
En la Instalador de Visual Studio, en la versión instalada, haga clic en el botón Más y, a continuación, seleccione Modificar.
En Visual Studio, en Cargas de trabajo, seleccione la carga de trabajo Desarrollo de escritorio con C++ , para que aparezca una marca de verificación:
Seleccione Componentes individuales, en la parte superior.
En el cuadro de búsqueda, escriba
JavaScript diagnostics
.Active la casilla diagnósticos de JavaScript :
Haga clic en el botón Modificar .
Continúe con la siguiente sección, a continuación.
Selección del depurador de JavaScript (WebView2)
A continuación, habilite la depuración de scripts para aplicaciones WebView2, como se indica a continuación.
Si aún no lo ha hecho, siga los pasos de la aplicación de ejemplo Win32 para que la aplicación WebView2APISample se compile y se ejecute. La solución WebView2Samples debe estar abierta en Visual Studio y la aplicación de ejemplo no debe estar en ejecución. O bien, abra su propio proyecto de aplicación WebView2 en Visual Studio.
En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en el proyecto WebView2APISample (o en su propio proyecto) y, a continuación, seleccione Propiedades.
Se abre el cuadro de diálogo Páginas de propiedades.
A la izquierda, expanda Propiedades de configuración y, a continuación, seleccione Depuración.
A la derecha de Tipo de depurador, seleccione JavaScript (WebView2) y, a continuación, haga clic en el botón Aceptar :
Depuración de la aplicación WebView2
Después de realizar la configuración anterior, depure la aplicación WebView2, como se indica a continuación.
Para establecer un punto de interrupción en el código fuente, mantenga el puntero a la izquierda del número de línea y haga clic para establecer un punto de interrupción. Por ejemplo, abra
WebView2Samples\SampleApps\WebView2APISample\assets\ScenarioJavaScriptDebugIndex.js
y establezca un punto de interrupción en la línea 2:console.log("onAddClick+");
, en el cuerpo de laonAddClick
función:Al establecer un punto de interrupción, debe abrir el archivo que se encuentra en la misma ruta de acceso que está asociada al control WebView2, ya que el adaptador de depuración JS/TS no realiza la asignación de rutas de acceso de origen.
El punto de interrupción se desencadenará cuando se ejecute esta sección del código. Este punto de interrupción se desencadena al hacer clic en el botón Agregar un nuevo elemento de la aplicación de ejemplo, en un paso posterior a continuación.
Seleccione el tamaño de bits de la plataforma, como x64.
Para ejecutar el depurador, haga lo siguiente:
- En la barra de menús, seleccione Depurar>iniciar depuración (F5).
- En Explorador de soluciones, haga clic con el botón derecho en el proyecto >Depurar>Nueva instancia o Paso a paso por nueva instancia.
- Haga clic en el botón verde Reproducir situado a la izquierda de Depurador local de Windows.
La aplicación WebView2APISample (o su propia aplicación) se ejecuta y se abre, y el depurador se conecta al primer proceso WebView2 que se crea. EnDepuración depropiedades> para el proyecto, Local Windows Debugger se estableció en JavaScript (WebView2).
En Visual Studio, haga clic en la pestaña Salida , en la esquina inferior derecha.
La pestaña contiene solo el siguiente mensaje, que menciona al depurador de JS: "Los registros detallados se escriben en: C:\Users\myUsername\AppData\Local\Temp\visualstudio-js-debugger.txt".
En la ventana de la aplicación WebView2APISample, seleccione Scenario Script Debugging JavaScript Local File (Escenario>de depuración de> scriptsde archivo local de JavaScript).
El archivo
WebView2APISample/Debug/x64/assets/ScenarioJavaScriptDebugIndex.html
se representa:En Visual Studio, examine el panel Salida . Se ha agregado la siguiente salida:
This is the very first line of code that executes. Second Third inside onAddClick+ onAddClick- onAddClick+ onAddClick- End
En la página web de la aplicación, haga clic en el botón emergente Agregar un nuevo elemento .
Se alcanza el punto de interrupción de la
onAddClick
función y la aplicación se pausa en el depurador.Cambie a la ventana de Visual Studio y examine los paneles del depurador.
Haga clic en la pestaña Salida para mostrar la salida de la aplicación:
La salida de la aplicación muestra "Esta es la primera línea de código que se ejecuta", debido a la línea
console.log("This is the very first line of code that executes.");
del archivoWebView2Samples\SampleApps\WebView2APISample\assets\ScenarioJavaScriptDebugIndex.html
.
Solución de problemas
Abra DevTools con un enfoque distinto de F12
Al depurar la aplicación en Visual Studio con el depurador nativo asociado, al ver la aplicación en ejecución, al presionar F12 podría iniciar el depurador nativo en lugar de iniciar Herramientas de desarrollo.
Para abrir DevTools, presione Ctrl+Mayús+I. O bien, haga clic con el botón derecho en la página de la aplicación en ejecución y, a continuación, seleccione Inspect
.
La asignación de rutas de acceso de origen virtual no se admite en Visual Studio 2019
Si usa el método SetVirtualHostNameToFolderMapping de WebView2, el depurador de Visual Studio 2019 no entiende la asignación de rutas de acceso de origen virtual, por lo que los puntos de interrupción no funcionan correctamente.
Al establecer un punto de interrupción, debe abrir el archivo que se encuentra en la misma ruta de acceso que está asociada al control WebView2, ya que el adaptador de depuración JS/TS no realiza la asignación de rutas de acceso de origen.
El depurador admite la asignación de rutas de acceso de origen virtual en Visual Studio Code.
Vea también
- Introducción a WebView2
- Repositorio WebView2Samples : un ejemplo completo de las funcionalidades de WebView2.
- Referencia de la API de WebView2