Eventos de navegación para aplicaciones WebView2
Cuando el usuario de la aplicación WebView2 va a otra página web, dirección URL o ruta de acceso de archivo, se trata de una navegación. Cada navegación desencadena una secuencia de eventos relacionados con la navegación. La parte nativa de la aplicación WebView2 escucha estos eventos de navegación y los controla.
Los eventos de navegación se ejecutan cuando se producen acciones asincrónicas específicas en el contenido que se muestra en una instancia de 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.
Plataformas admitidas: Win32, Windows Forms, WinUI, WPF.
Secuencia estándar de eventos
A continuación se muestra la secuencia normal de eventos que se desencadenan durante cada paso de una navegación:
Secuencia | Evento | Descripción | Introducción a la referencia de API |
---|---|---|---|
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. | Bloquear navegación no deseada |
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 . | Historial de navegación |
3 | ContentLoading |
WebView2 comienza a cargar contenido para la nueva página. | Eventos de navegación |
4 | HistoryChanged |
La navegación hace que se actualice el historial de WebView2. | Historial de navegación |
5 | BasicAuthenticationRequested |
Se genera cuando WebView encuentra una solicitud de autenticación HTTP básica. Consulte Autenticación básica para aplicaciones WebView2. | Autenticación |
6 | DOMContentLoaded |
WebView2 finaliza el análisis del contenido DOM, pero no ha terminado de cargar todas las imágenes, scripts y otro contenido de la página. | Eventos de navegación |
7 | NavigationCompleted |
WebView2 completa la carga de contenido en la nueva página. | Eventos de navegación |
Identificadores de navegación
En el diagrama anterior se muestran eventos de navegación que tienen la misma NavigationId
propiedad en el objeto correspondiente eventArgs
.
Realice un seguimiento de los eventos de navegación a cada documento nuevo mediante la NavigationId
propiedad del objeto de cada evento de eventArgs
navegación. Cada navegación implica una secuencia de eventos de navegación. El NavigationId
valor cambia cada vez que se completa una navegación correcta a un nuevo documento.
Los eventos de navegación que tienen identificadores de navegación diferentes pueden superponerse. Por ejemplo, al iniciar un evento de navegación, debe esperar al evento relacionado NavigationStarting
. La NavigationStarting
propiedad del NavigationId
objeto identifica el NavigationStartingEventArgs
evento. Si, a continuación, inicia otra navegación, verá la siguiente secuencia:
- Evento
NavigationStarting
para la primera navegación. - Evento
NavigationStarting
para la segunda navegación. - Evento
NavigationCompleted
para la primera navegación. - Todos los demás eventos de navegación adecuados para la segunda navegación.
En los casos de error, puede haber o no un ContentLoading
evento, dependiendo de si la navegación continúa a una página de error.
Si se produce una redirección HTTP, hay varios NavigationStarting
eventos en una fila, donde los argumentos de eventos posteriores tienen establecida la IsRedirect
propiedad ; sin embargo, el identificador de navegación sigue siendo el mismo.
Los eventos de navegación del mismo documento, como navegar a un fragmento del mismo documento, no provocan que se despida un NavigationStarting
evento y no hacen que el identificador de navegación cambie.
Navegación en marcos
Para supervisar o cancelar eventos de navegación dentro de marcos en una instancia de WebView2, use las API y eventos equivalentes relacionados con marcos. Consulte Uso de marcos en aplicaciones WebView2.
Código de ejemplo de navegación
Para obtener código de ejemplo que muestra cómo controlar eventos de navegación, consulte:
- Obtenga información sobre los eventos de navegación en Introducción a WebView2 en aplicaciones winUI 2 (UWP): no hay código de ejemplo en el artículo; consulte los artículos de otros marcos.
- Paso 8: Control de eventos de navegación en Introducción a WebView2 en aplicaciones winUI 3 (SDK de Aplicaciones para Windows).
- Paso 7: Eventos de navegación en Introducción a WebView2 en aplicaciones WPF.
- Paso 8: Eventos de navegación en Introducción a WebView2 en aplicaciones WinForms.
- Paso 13: Eventos de navegación en Introducción a WebView2 en aplicaciones Win32.
Las aplicaciones de ejemplo WebView2 también muestran cómo controlar eventos de navegación.
Vea también
- Vaya a páginas y administre el contenido cargado en Información general sobre las características y las API de WebView2.
- Autenticación básica para aplicaciones WebView2
- Introducción a WebView2
- Repositorio WebView2Samples : un ejemplo completo de las funcionalidades de WebView2.
- Referencia de la API de WebView2