События навигации

Нормальная последовательность событий навигации:,,,, NavigationStarting SourceChanged ContentLoading HistoryChanged и затем NavigationCompleted . Следующие события описывают состояние WebView2 во время каждой навигации.

Sequence Имя события Сведения
1,1 NavigationStarting WebView2 запускает навигацию и навигацию, что приводит к выполнению сетевого запроса. Ведущее приложение может запретить запрос во время события.
2 SourceChanged Источник изменений WebView2 меняется на новый URL-адрес. Это событие может быть вызвано навигацией, которая не является причиной сетевого запроса, например Навигация по фрагменту.
Трехконтактный HistoryChanged История обновлений WebView2 в результате навигации.
четырехпроцессорном ContentLoading WebView загружает содержимое для новой страницы.
5 NavigationCompleted WebView2 завершает загрузку содержимого на новой странице.

Отслеживайте navigations каждый новый документ с помощью идентификатора навигации \ ( NavigationId ). NavigationIdWebView меняется каждый раз при успешном переходе на новый документ.

События навигации Microsoft Edge WebView2

Примечание

Предыдущий рисунок представляет события навигации с тем же NavigationId свойством для соответствующего события arg.

Navigations события с разными экземплярами NavigationId события могут перекрываться. Например, при запуске навигации необходимо дождаться связанного NavigationStarting события. Если затем вы запустите другую навигацию, вы увидите NavigationStarting событие для первого перехода, за которым следует событие NavigationStarting для первой навигации, затем событие, NavigationCompleted а затем все остальные события навигации для второй навигации.

В случае ошибок может возникнуть или не быть ContentLoading событием в зависимости от того, продолжает ли переход страница ошибки.

В случае переадресации HTTP NavigationStarting в строке есть несколько событий, в которых для последующего события IsRedirect задано свойство, но оно остается прежним NavigationId .

Тот же документ navigations , например переход к фрагменту, не приводит к NavigationStarting событию, и его нельзя увеличить NavigationId .

Для контроля и отмены navigations внутри подкадров в WebView используйте FrameNavigationStarting события and, FrameNavigationCompleted которые действуют так же, как эквивалентные события, не связанные с кадрами.