Événements de navigation pour les applications WebView2
Lorsque l’utilisateur de votre application WebView2 accède à une autre page web, URL ou chemin d’accès au fichier, il s’agit d’une navigation. Chaque navigation déclenche une séquence d’événements liés à la navigation. La partie native de votre application WebView2 écoute ces événements de navigation et les gère.
Les événements de navigation s’exécutent lorsque des actions asynchrones spécifiques se produisent sur le contenu affiché dans un instance WebView2. Par exemple, lorsqu’un utilisateur WebView2 accède à un nouveau site web, le contenu natif écoute la modification en écoutant l’événement NavigationStarting
. Une fois l’action de navigation terminée, s’exécute NavigationCompleted
.
Plateformes prises en charge : Win32, Windows Forms, WinUI, WPF.
Séquence standard d’événements
Voici la séquence normale d’événements déclenchés à chaque étape d’une navigation :
Séquence | Événement | Description | Vue d’ensemble des informations de référence sur les API |
---|---|---|---|
1 | NavigationStarting |
WebView2 commence à naviguer et la navigation entraîne une requête réseau. L’hôte peut interdire la demande pendant l’événement. | Bloquer la navigation indésirable |
2 | SourceChanged |
La source de WebView2 devient une nouvelle URL. L’événement peut résulter d’une action de navigation qui ne provoque pas de requête réseau, telle qu’une navigation par fragment . | Historique de navigation |
3 | ContentLoading |
WebView2 commence à charger le contenu de la nouvelle page. | Événements de navigation |
4 | HistoryChanged |
La navigation entraîne la mise à jour de l’historique de WebView2. | Historique de navigation |
5 | BasicAuthenticationRequested |
Déclenché lorsque WebView rencontre une demande d’authentification HTTP de base. Consultez Authentification de base pour les applications WebView2. | Authentification |
6 | DOMContentLoaded |
WebView2 termine l’analyse du contenu DOM, mais n’a pas fini de charger toutes les images, scripts et autres contenus sur la page. | Événements de navigation |
7 | NavigationCompleted |
WebView2 termine le chargement du contenu sur la nouvelle page. | Événements de navigation |
ID de navigation
Le diagramme ci-dessus montre les événements de navigation qui ont la même NavigationId
propriété sur l’objet respectif eventArgs
.
Suivez les événements de navigation vers chaque nouveau document à l’aide de la NavigationId
propriété de l’objet de chaque événement de eventArgs
navigation. Chaque navigation implique une séquence d’événements de navigation. La NavigationId
valeur change chaque fois qu’une navigation réussie vers un nouveau document est terminée.
Les événements de navigation qui ont des ID de navigation différents peuvent se chevaucher. Par instance, lorsque vous démarrez un événement de navigation, vous devez attendre l’événement associéNavigationStarting
. L’événement NavigationStarting
est identifié par la NavigationId
propriété sur l’objet NavigationStartingEventArgs
. Si vous démarrez ensuite une autre navigation, la séquence suivante s’affiche :
- Événement
NavigationStarting
pour la première navigation. - Événement
NavigationStarting
pour la deuxième navigation. - Événement
NavigationCompleted
pour la première navigation. - Tous les autres événements de navigation appropriés pour la deuxième navigation.
Dans les cas d’erreur, il peut y avoir ou non un ContentLoading
événement, selon que la navigation est poursuivie ou non vers une page d’erreur.
Si une redirection HTTP se produit, il y a plusieurs NavigationStarting
événements dans une ligne, où les arguments d’événement ultérieurs ont la IsRedirect
propriété définie ; toutefois, l’ID de navigation reste le même.
Les événements de navigation dans le même document, tels que la navigation vers un fragment dans le même document, n’entraînent pas le déclenchement d’un NavigationStarting
événement et ne modifient pas l’ID de navigation.
Navigation dans les cadres
Pour surveiller ou annuler des événements de navigation à l’intérieur d’images dans un instance WebView2, utilisez les API et événements équivalents liés aux trames. Consultez Utilisation de cadres dans les applications WebView2.
Exemple de code de navigation
Pour obtenir un exemple de code montrant comment gérer les événements de navigation, consultez :
- Découvrez les événements de navigation dans Prise en main de WebView2 dans les applications WinUI 2 (UWP) - aucun exemple de code dans l’article ; consultez les articles d’autres frameworks.
- Étape 8 : Gérer les événements de navigation dans Prise en main de WebView2 dans les applications WinUI 3 (SDK d'application Windows).
- Étape 7 : Événements de navigation dans Prise en main de WebView2 dans les applications WPF.
- Étape 8 : Événements de navigation dans Prise en main de WebView2 dans les applications WinForms.
- Étape 13 : Événements de navigation dans Prise en main de WebView2 dans les applications Win32.
Les exemples d’applications WebView2 illustrent également la gestion des événements de navigation.
Voir aussi
- Accédez aux pages et gérez le contenu chargé dans Vue d’ensemble des fonctionnalités et API WebView2
- Authentification de base pour les applications WebView2
- Prise en main de WebView2
- Référentiel WebView2Samples : un exemple complet de fonctionnalités WebView2.
- Informations de référence sur l’API WebView2