Eventos de navegación para WebView2
Plataformas admitidas: Win32, Windows Forms, WinUi, WPF.
Los eventos de navegación se ejecutan cuando se producen acciones asincrónicas específicas al contenido que se muestra en una instancia webView2. Por ejemplo, cuando un usuario de WebView2 navega a un nuevo sitio web, el contenido nativo escucha el cambio escuchando el NavigationStarting evento. Cuando se completa la acción de navegación, NavigationCompleted se ejecuta. Para obtener un ejemplo de eventos de navegación, consulte un artículo Get started específico de la plataforma.
La secuencia normal de eventos de navegación es:
NavigationStartingSourceChangedContentLoadingHistoryChangedDOMContentLoadedNavigationCompleted
Los siguientes eventos describen el estado de WebView2 durante cada acción de navegación:
| Secuencia | Nombre del evento | Detalles |
|---|---|---|
| 1 | NavigationStarting |
WebView2 comienza a navegar y la navegación da como resultado una solicitud de red. El host puede no permitir la solicitud durante el evento. |
| 2 | SourceChanged |
El origen de WebView2 cambia a una nueva dirección URL. El evento puede ser el resultado de una acción de navegación que no provoca una solicitud de red, como una navegación por fragmentos. |
| 3 | ContentLoading |
WebView2 inicia la carga de contenido de la nueva página. |
| 4 | HistoryChanged |
La navegación hace que se actualice el historial de WebView2. |
| 5 | DOMContentLoaded |
WebView2 termina de analizar el contenido DOM, pero no ha terminado de cargar todas las imágenes, scripts y otro contenido de la página. |
| 6 | NavigationCompleted |
WebView2 completa la carga de contenido en la nueva página. |
En la figura anterior se muestran los eventos de navegación que tienen la misma NavigationId propiedad en el argumento de evento respectivo.
Realice un seguimiento de los eventos de navegación de cada nuevo documento mediante el identificador de navegación (que se proporciona en el NavigationId evento). El evento WebView2 cambia cada vez que se completa una navegación NavigationId correcta a un nuevo documento.
Los eventos de navegación con diferentes instancias de NavigationId evento pueden superponerse. Por ejemplo, al iniciar un evento de navegación, debe esperar al evento NavigationStarting relacionado. Si luego inicia otra navegación, verá la siguiente secuencia:
- Evento
NavigationStartingpara la primera navegación. - Evento
NavigationStartingpara la segunda navegación. - Evento
NavigationCompletedpara la primera navegación. - Todos los demás eventos de navegación adecuados para la segunda navegación.
En casos de error, puede haber o no un evento, en función de si la navegación ContentLoading continúa a una página de error.
Si se produce un redireccionamiento HTTP, hay varios eventos en una fila, donde los argumentos de evento posteriores tienen la propiedad establecida; sin embargo, el NavigationStarting IsRedirect evento permanece NavigationId igual.
Los eventos de navegación del mismo documento, como navegar a un fragmento del mismo documento, no provocan un evento y no NavigationStarting incrementan el NavigationId evento.
Para supervisar o cancelar eventos de navegación dentro de subframes en una instancia WebView2, use los FrameNavigationStarting eventos FrameNavigationCompleted and. Estos eventos actúan como los eventos equivalentes que no son de marco y equivalentes.
Vea también
- Guías de Introducción WebView2
- Repositorio WebView2Samples: un ejemplo completo de las capacidades de WebView2.
- Referencia de API de WebView2
- Vea también en Introducción a Microsoft Edge WebView2.