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:

  1. NavigationStarting
  2. SourceChanged
  3. ContentLoading
  4. HistoryChanged
  5. DOMContentLoaded
  6. NavigationCompleted

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:

  1. Evento NavigationStarting para la primera navegación.
  2. Evento NavigationStarting para la segunda navegación.
  3. Evento NavigationCompleted para la primera navegación.
  4. 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