WebView2 アプリのナビゲーション イベント
サポートされているプラットフォーム: Win32、Windows フォーム、WinUi、WPF。
この記事では、WebView2 アプリのナビゲーション イベントについて説明します。 ナビゲーション イベントは、WebView2 インスタンスに表示されるコンテンツに対して特定の非同期アクションが発生したときに実行されます。 たとえば、WebView2 ユーザーが新しい Web サイトに移動すると、ネイティブ コンテンツはイベントをリッスンして変更を NavigationStarting
リッスンします。 ナビゲーション アクションが完了すると、 NavigationCompleted
実行されます。
ナビゲーション イベントの例については、「 WebView2 の使用を開始する」を参照してください。
ナビゲーション イベントの通常のシーケンスは次のとおりです。
NavigationStarting
SourceChanged
ContentLoading
HistoryChanged
BasicAuthenticationRequested
DOMContentLoaded
NavigationCompleted
次のイベントでは、各ナビゲーション アクション中の WebView2 の状態について説明します。
シーケンス | [Event Name] | 詳細 |
---|---|---|
1 | NavigationStarting |
WebView2 が移動を開始し、ナビゲーションによってネットワーク要求が生成されます。 ホストは、イベント中に要求を許可しない場合があります。 |
2 | SourceChanged |
WebView2 のソースが新しい URL に変更されます。 このイベントは、フラグメント ナビゲーションなどのネットワーク要求を引き起こさないナビゲーション アクションの結果として発生する可能性があります。 |
3 | ContentLoading |
WebView2 は、新しいページのコンテンツの読み込みを開始します。 |
4 | HistoryChanged |
ナビゲーションにより、WebView2 の履歴が更新されます。 |
5 | DOMContentLoaded |
WebView2 は DOM コンテンツの解析を終了しますが、ページ上のすべてのイメージ、スクリプト、およびその他のコンテンツの読み込みが完了していません。 |
6 | NavigationCompleted |
WebView2 は、新しいページでのコンテンツの読み込みを完了します。 |
上の図は、それぞれのイベント引数に同じ NavigationId
プロパティを持つナビゲーション イベントを示しています。
ナビゲーション ID (イベントで提供される) を使用して、ナビゲーション イベントを新しい各ドキュメントに NavigationId
追跡します。 WebView2 のイベントは NavigationId
、新しいドキュメントへの正常なナビゲーションが完了するたびに変更されます。
イベントのインスタンスが異なるナビゲーション イベントが NavigationId
重なる場合があります。 たとえば、ナビゲーション イベントを開始するときは、関連する NavigationStarting
イベントを待機する必要があります。 その後、別のナビゲーションを開始すると、次のシーケンスが表示されます。
- 最初の
NavigationStarting
ナビゲーションのイベント。 NavigationStarting
2 番目のナビゲーションのイベント。- 最初の
NavigationCompleted
ナビゲーションのイベント。 - 2 番目のナビゲーションに適したナビゲーション イベントの残りの部分すべて。
エラーが発生した場合は、ナビゲーションがエラー ページに続くかどうかによって、イベントが発生する可能性 ContentLoading
があります。
HTTP リダイレクトが発生した場合、1 行に複数 NavigationStarting
のイベントがあり、後のイベント引数に IsRedirect
プロパティが設定されていますが、 NavigationId
イベントは同じままです。
同じドキュメント内のフラグメントへの移動などの同じドキュメント ナビゲーション イベントでは、イベントは発生 NavigationStarting
せず、イベントを NavigationId
インクリメントしません。
WebView2 インスタンスのサブフレーム内のナビゲーション イベントを監視または取り消すには、そのイベントとFrameNavigationCompleted
イベントをFrameNavigationStarting
使用します。 これらのイベントは、同等のフレーム以外の対応するイベントのように動作します。
関連項目
- WebView2 の使用を開始する
- WebView2Samples リポジトリ - WebView2's 機能の包括的な例があります。
- WebView2 API リファレンス
- 「Microsoft Edge WebView2 の概要」も参照してください。