WebView2 の機能と API の概要
アプリに WebView2 コントロールを埋め込むと、WebView2 クラスまたはインターフェイスを介して提供されるさまざまなメソッドとプロパティにアプリがアクセスできるようになります。 WebView2 には、アプリのネイティブ プラットフォーム機能の強化から、アプリによるブラウザー エクスペリエンスの変更まで、膨大な機能セットを提供する数百の API があります。 この記事では、WebView2 API の概要をグループ化して、WebView2 を使用して実行できるさまざまなことを理解するのに役立ちます。
最上位の機能領域の概要
WebView2 コントロールをホストする場合、アプリは次の機能と API にアクセスできます。
機能領域 | 用途 |
---|---|
メイン クラス: 環境、コントローラー、およびコア |
CoreWebView2Environment 、CoreWebView2Controller 、CoreWebView2 クラス (または同等のインターフェイス) が連携して、アプリが WebView2 ブラウザー コントロールをホストし、そのブラウザー機能にアクセスできるようにします。 これらの大規模なクラスは、ホスト アプリがアクセスできるさまざまな API を公開し、ユーザーにブラウザー関連の機能の次のカテゴリを提供します。 |
Web/ネイティブ相互運用機能 | ネイティブ アプリケーションに Web コンテンツを埋め込む。 単純なメッセージ、JavaScript コード、ネイティブ オブジェクトを使用して、ネイティブ コードと Web コード間で通信します。 |
ブラウザーの機能 | WebView2 コントロールを使用すると、アプリは多くのブラウザー機能にアクセスできます。 これらのブラウザー機能を変更し、オンまたはオフにすることができます。 |
プロセス管理 | アプリがそれに応じてアクションを実行できるように、WebView2 プロセスの実行、プロセスの終了、失敗したプロセスに関する情報を取得します。 |
ページに移動し、読み込まれたコンテンツを管理する | Web ページへのナビゲーションを管理し、Web ページに読み込まれたコンテンツを管理します。 |
iframes | 他の Web ページを独自の Web ページに埋め込みます。 埋め込まれた Web ページがいつ作成されているかを検出し、埋め込み Web ページが移動するタイミングを検出し、必要に応じて x フレーム オプションをバイパスします。 |
認証 | アプリは、WebView2 コントロールを使用して基本認証を処理できます。 基本認証 は、HTTP プロトコルの一部である特定の認証方法です。 |
非フレームワーク アプリでの WebView2 のレンダリング | ホスト アプリで UI フレームワークが使用されていない場合は、これらの API を使用して WebView2 レンダリング システムを設定します。 このレンダリング設定は、WebView2 がホスト アプリに出力をレンダリングする方法と、WebView2 が入力、フォーカス、アクセシビリティを処理する方法を制御します。 |
Composition を使用した WebView2 のレンダリング | 合成ベースの WebView2 レンダリングの場合は、 CoreWebView2Environment を使用して CoreWebView2CompositionController を作成します。
CoreWebView2CompositionController は、 CoreWebView2Controller と同じ API を提供しますが、合成ベースのレンダリング用の API も含まれています。 |
環境オプション |
ユーザー データ: ユーザーのコンピューター上のフォルダーであるユーザー データ フォルダー (UDF) を管理します。 UDF には、ホスト アプリと WebView2 に関連するデータが含まれています。 WebView2 アプリでは、ユーザー データ フォルダーを使用して、Cookie、アクセス許可、キャッシュされたリソースなどのブラウザー データを格納します。 1 つの UDF で複数のプロファイルを管理します。 ランタイムの選択 では、プレリリース テストとセルフホスティングがサポートされます。 ブラウザー プレビュー チャネルの検索順序を指定し、検索するブラウザー プレビュー チャネルを指定できます。 |
パフォーマンスとデバッグ | パフォーマンスを分析してデバッグし、パフォーマンス関連のイベントを処理し、メモリ使用量を管理してアプリの応答性を高めます。 |
Chrome DevTools プロトコル (CDP) | Chromium ベースのブラウザーをインストルメント化、検査、デバッグ、プロファイルします。 Chrome DevTools プロトコル (CDP) は、Microsoft Edge DevTools の基盤です。 WebView2 プラットフォームに実装されていない機能には、Chrome DevTools プロトコルを使用します。 |
このページには、リリース SDK 内の API のみが一覧表示されます。リリース SDK でまだ使用できない試験的 API や安定した API は一覧表示されません。 試験的 API を含む API の包括的な一覧については、「 WebView2 SDK のリリース ノート」を参照してください。
メイン クラス: 環境、コントローラー、およびコア
CoreWebView2Environment
、CoreWebView2Controller
、CoreWebView2
クラス (または同等のインターフェイス) が連携して、アプリが WebView2 ブラウザー コントロールをホストし、そのブラウザー機能にアクセスできるようにします。 これら 3 つの大規模なクラスでは、ホスト アプリがアクセスできるさまざまな API を公開し、ユーザーにブラウザー関連の機能の多くのカテゴリを提供します。
-
CoreWebView2Environment
クラスは、同じ WebView2 ブラウザー プロセス、ユーザー データ フォルダー、およびレンダラー プロセスを共有する WebView2 コントロールのグループを表します。 このCoreWebView2Environment
クラスから、CoreWebView2Controller
インスタンスとCoreWebView2
インスタンスのペアを作成します。 -
CoreWebView2Controller
クラスは、ウィンドウ フォーカス、可視性、サイズ、入力などのホスティング関連の機能を担当し、アプリが WebView2 コントロールをホストします。 -
CoreWebView2
クラスは、ネットワーク、ナビゲーション、スクリプト、HTML の解析とレンダリングなど、WebView2 コントロールの Web 固有の部分用です。
関連項目:
Web/ネイティブ相互運用機能
Microsoft Edge WebView2 コントロールを使用すると、Web コンテンツをネイティブ アプリケーションに埋め込むことができます。 単純なメッセージ、JavaScript コード、およびネイティブ オブジェクトを使用して、ネイティブ コードと Web コード間で通信できます。 Web とネイティブ コード間で通信するためのメイン API を次に示します。
以下のサブセクション:
Web/ネイティブ相互運用の一般的なユース ケース:
- 別の Web サイトに移動した後、ネイティブ ホスト ウィンドウのタイトルを更新します。
- ネイティブ カメラ オブジェクトを送信し、Web アプリからそのメソッドを使用します。
- アプリケーションの Web 側で専用の JavaScript ファイルを実行します。
関連項目:
- ネイティブ側と Web 側のコードの相互運用
- ネイティブ側コードから Web 側コードを呼び出す
- Web 側コードからネイティブ側コードを呼び出す
- Web 側コードからネイティブ側の WinRT コードを呼び出す
-
window.chrome.webview
JavaScript API 用 WebView2 の JavaScript API
ホスト/Web オブジェクト共有
WebView2 を使用すると、ネイティブ コードで定義されているオブジェクトをアプリの Web 側コードに渡すことができます。 ホスト オブジェクト は、アプリの Web 側コードに渡すために選択したネイティブ コードで定義されているオブジェクトです。
ホスト オブジェクトは JavaScript に投影できるため、アプリの Web 側コードからネイティブ オブジェクト メソッド (またはその他の API) を呼び出すことができます。 たとえば、アプリは、アプリの Web 側でのユーザー操作の結果として、このような API を呼び出すことができます。 これにより、ネイティブ オブジェクトの API (メソッドやプロパティなど) を Web 側コードに再実装する必要はありません。
-
CoreWebView2
クラス: -
CoreWebView2Settings
クラス:
スクリプトの実行
ホスト アプリが WebView2 コントロール内の Web コンテンツに JavaScript コードを追加できるようにします。
-
CoreWebView2
クラス: - CoreWebView2ExecuteScriptResult クラス
-
CoreWebView2Frame
クラス: - CoreWebView2ScriptException クラス
-
CoreWebView2Settings
クラス:
Web メッセージング
アプリは、WebView2 コントロール内の Web コンテンツにメッセージを送信し、その Web コンテンツからメッセージを受信できます。 メッセージは文字列または JSON オブジェクトとして送信されます。
必要に応じて、PostWebMessageAsJson
(.NET、WinRT) の additionalObjects
パラメーターまたは PostWebMessageAsJsonWithAdditionalObjects
(Win32) を使用して、メッセージと共に DOM オブジェクトを投稿および受信できます。 WebView2 CoreWebView2FileSystemHandle
クラスは DOM FileSystemHandle
を表し、 CoreWebView2File
は DOM File
を表します。 JavaScript リファレンスの「 chrome.webview.postMessageWithAdditionalObjects
」も参照してください。
CoreWebView2
クラス:CoreWebView2Frame
クラス:CoreWebView2Settings
クラス:CoreWebView2Environment
クラス:CoreWebView2FileSystemHandle
クラス:CoreWebView2FileSystemHandleKind 列挙型
File
Directory
CoreWebView2FileSystemHandlePermission 列挙型
ReadOnly
ReadWrite
スクリプト ダイアログ
WebView2 をホストする場合、アプリはさまざまな JavaScript ダイアログを管理して、それらを抑制したり、カスタム ダイアログに置き換えたりすることができます。
共有バッファー
SharedBuffer API では、OS からの共有メモリに基づいて、WebView2 ホスト アプリ プロセスと WebView2 レンダラー プロセス間の共有バッファーがサポートされています。
関連項目:
-
CoreWebView2
クラス: -
CoreWebView2Environment
クラス: -
CoreWebView2Frame
クラス: - CoreWebView2SharedBuffer クラス
-
CoreWebView2SharedBufferAccess 列挙型
ReadOnly
ReadWrite
ブラウザーの機能
WebView2 コントロールを使用すると、アプリは多くのブラウザー機能にアクセスできます。 これらのブラウザー機能を変更し、オンまたはオフにすることができます。
以下のサブセクション:
- 印刷
- Cookie
- 画像キャプチャ
- ダウンロード
- 名前を付けて保存
- Web 通知処理
- アクセス許可
- コンテキスト メニュー
- ステータス バー
- Fluent オーバーレイ スクロール バー
- ユーザー エージェント
- オートフィル
- Audio
- リージョンでのマウス クリックのヒット テスト
- スワイプ ジェスチャ ナビゲーション
- アクセラレータ キー (ショートカット キー) に応答するブラウザーを有効または無効にする
- 全画面表示
- PDF ツール バー
- テーマ
- Language
- 新しいウィンドウ
- ウィンドウを閉じる
- ドキュメント タイトル
- Favicon
- セキュリティとプライバシー
- ブラウザー拡張機能
印刷
Web ページをプリンター、PDF ファイル、または PDF ストリームに印刷するには、カスタム印刷設定を構成します。
関連項目:
-
CoreWebView2
クラス: -
CoreWebView2Environment
クラス: - CoreWebView2PrintSettings クラス
- CoreWebView2PrintDialogKind 列挙型
- CoreWebView2PrintStatus 列挙型
Cookie
WebView2 で Cookie を使用して、ユーザー セッションの管理、ユーザーの個人用設定の保存、ユーザーの動作の追跡を行うことができます。
関連項目:
-
CoreWebView2
クラス: - CoreWebView2Cookie クラス
- CoreWebView2CookieManager クラス
-
CoreWebView2Profile
クラス:
画像キャプチャ
WebView2 をホストすることで、アプリはスクリーンショットをキャプチャし、画像の保存に使用する形式を示すことができます。
-
CoreWebView2
クラス:
画面キャプチャ UI を表示するかどうかを制御する
ScreenCaptureStarting
イベントは、UI が表示される前に、CoreWebView2Frame
(またはその子孫の iframe) に対応する WebView2 または iframe が Screen Capture API を使用するためのアクセス許可を要求するたびに発生します。 その後、アプリは UI の表示をブロックしたり、UI の表示を許可したりできます。
CoreWebView2
クラス:CoreWebView2Frame
クラス:CoreWebView2NonClientRegionKind
列挙型:
ダウンロード
アプリは、WebView2 のダウンロード エクスペリエンスを管理できます。 アプリでは、次のことができます。
- さまざまなメタデータに基づいてダウンロードを許可またはブロックします。
- ダウンロード場所を変更します。
- カスタム ダウンロード UI を構成します。
- 既定の UI をカスタマイズします。
全般:
-
CoreWebView2
クラス:
既定のエクスペリエンスを変更する:
-
CoreWebView2
クラス: -
CoreWebView2Profile
クラス:
カスタム ダウンロード エクスペリエンス:
名前を付けて保存
名前を付けて保存 API を使用すると、プログラムで 名前を付けて保存 操作を実行できます。 これらの API を使用して、既定の [名前を付けて保存] ダイアログをブロックし、サイレント 形式で保存するか、[ 名前を付けて保存] 用に独自の UI を作成できます。 これらの API は、ダウンロード API を使用する [ダウンロード] ダイアログではなく、[名前を付けて保存] ダイアログにのみ関連します。
CoreWebView2
クラス:-
Complete
Default
HtmlOnly
SingleFile
CoreWebView2SaveAsUIResult 列挙型
Cancelled
FileAlreadyExists
InvalidPath
KindNotSupported
Success
CoreWebView2SaveAsUIShowingEventArgs クラス
- CoreWebView2SaveAsUIShowingEventArgs.AllowReplace プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.Cancel プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.ContentMimeType プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.Kind プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.SaveAsFilePath プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.SuppressDefaultDialog プロパティ
- CoreWebView2SaveAsUIShowingEventArgs.GetDeferral メソッド
ファイルを保存するときのセキュリティ警告を構成する
SaveFileSecurityCheckStarting
イベントをリッスンすることで、アプリはこのイベントにハンドラーを登録して、ファイル パス、ファイル名拡張子、ドキュメントの配信元 URI 情報を取得できます。 その後、独自のルールを適用して、次のようなアクションを実行できます。
- ファイルの種類のポリシーに関する既定のセキュリティ警告 UI を表示せずに、ファイルの保存を許可します。
- 保存を取り消します。
- ランタイム ファイルの種類のポリシーを管理するための独自の UI を作成します。
CoreWebView2
クラス:CoreWebView2SaveFileSecurityCheckStartingEventArgs クラス
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.CancelSave プロパティ
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.DocumentOriginUri プロパティ
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FileExtension プロパティ
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.FilePath プロパティ
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.SuppressDefaultPolicy プロパティ
- CoreWebView2SaveFileSecurityCheckStartingEventArgs.GetDeferral メソッド
Web 通知処理
Web 通知 API では、非永続的な通知がサポートされます。
CoreWebView2
のNotificationReceived
イベントは、Web 通知処理を制御し、ホスト アプリによるカスタマイズまたは抑制を可能にします。 未処理の通知は、既定で WebView2 の UI に設定されます。
CoreWebView2
クラス:-
- CoreWebView2Notification.BadgeUri プロパティ
- CoreWebView2Notification.Body プロパティ
- CoreWebView2Notification.BodyImageUri プロパティ
- CoreWebView2Notification.Direction プロパティ
- CoreWebView2Notification.IconUri プロパティ
- CoreWebView2Notification.IsSilent プロパティ
- CoreWebView2Notification.Language プロパティ
- CoreWebView2Notification.RequiresInteraction プロパティ
- CoreWebView2Notification.ShouldRenotify プロパティ
- CoreWebView2Notification.Tag プロパティ
- CoreWebView2Notification.Timestamp プロパティ
- CoreWebView2Notification.Title プロパティ
- CoreWebView2Notification.VibrationPattern プロパティ
- CoreWebView2Notification.ReportClicked メソッド
- CoreWebView2Notification.ReportClosed メソッド
- CoreWebView2Notification.ReportShown メソッド
- CoreWebView2Notification.CloseRequested イベント
CoreWebView2TextDirectionKind 列挙型
Default
LeftToRight
RightToLeft
アクセス許可
位置情報センサー、カメラ、マイクなど、一部の特権リソースにアクセスするためのアクセス許可を求める Web ページが異なる場合があります。 ホスト アプリは、アクセス許可要求にプログラムで応答でき、既定のアクセス許可 UI を独自の UI に置き換えることができます。
-
CoreWebView2
クラス: -
CoreWebView2Frame
クラス: - CoreWebView2PermissionKind 列挙型
-
CoreWebView2PermissionRequestedEventArgs
クラス: - CoreWebView2PermissionSetting クラス
-
CoreWebView2Profile
クラス:
コンテキスト メニュー
WebView2 コントロールには、カスタマイズまたは無効化できる既定のコンテキスト メニュー (右クリック メニュー) が用意されており、独自のコンテキスト メニューを作成することもできます。
関連項目:
-
CoreWebView2
クラス: - CoreWebView2ContextMenuItem クラス
- CoreWebView2ContextMenuRequestedEventArgs クラス
- CoreWebView2ContextMenuTarget クラス
-
CoreWebView2Environment
クラス: -
CoreWebView2Settings
クラス:
ステータス バー
ステータス バーはページの左下にあり、表示されている Web ページの状態が表示されます。 WebView2 では、ステータス バーを有効または無効にし、ステータス バーのテキストを取得し、ステータス バーのテキストが変更されたタイミングを確認できます。
-
CoreWebView2
クラス: -
CoreWebView2Settings
クラス:
Fluent オーバーレイ スクロール バー
Microsoft Fluent デザインでスクロール バーをスタイル化し、スクロール バーを Web コンテンツの上にオーバーレイします。 このアダプティブ スクロール バーの設計は、さまざまなデバイスとウィンドウ サイズに合わせて調整されます。
Fluent オーバーレイ スクロール バーを試すには、Microsoft Edge で [ edge://flags
] に移動し、「 Fluent オーバーレイ スクロール バー」と入力します。
関連項目:
-
WebView2 ブラウザー フラグ -
msEdgeFluentOverlayScrollbar
およびmsOverlayScrollbarWinStyle
フラグ。
CoreWebView2EnvironmentOptions
クラス:CoreWebView2ScrollbarStyle 列挙型
Default
FluentOverlay
ユーザー エージェント
ユーザー エージェントは、ブラウザー名など、ユーザーの代わりにプログラムの ID を表す文字列です。 WebView2 では、ユーザー エージェントを設定できます。
関連項目:
-
CoreWebView2Settings
クラス:
オートフィル
アプリは、ブラウザーのオートフィル機能が一般的な情報に対して有効になっているか、パスワードに対して有効になっているかを個別に制御できます。
-
CoreWebView2Settings
クラス:
オーディオ
アプリでは、すべてのオーディオのミュートとミュート解除を行い、オーディオが再生されているタイミングを確認できます。
リージョンでのマウス クリックのヒット テスト
WebView2 に含まれるリージョンに対してヒット テストの結果を提供します。 WebView2 ウィンドウのクライアント以外の領域でマウス イベントを処理する視覚的にホストされたアプリケーションに役立ちます。
CoreWebView2CompositionController
クラス:CoreWebView2NonClientRegionChangedEventArgs
クラス:CoreWebView2NonClientRegionKind 列挙型
Caption
Client
Nowhere
CoreWebView2Settings
クラス:
スワイプ ジェスチャ ナビゲーション
WebView2 コントロールをホストすることで、アプリはタッチ入力が有効なデバイスでスワイプ ジェスチャ ナビゲーションを有効または無効にすることができます。 このジェスチャを使用すると、エンド ユーザーは次のことができます。
- 左右にスワイプ (水平方向にスワイプ) して、ナビゲーション履歴の前または次のページに移動します。
- 現在のページを更新 (垂直方向にスワイプ) するためにプルします。
この機能は現在、ブラウザーで既定で無効になっています。 WebView2 でこの機能を有効にするには、--pull-to-refresh
スイッチを指定して、AdditionalBrowserArguments
プロパティを設定します。
-
CoreWebView2Settings
クラス: -
CoreWebView2EnvironmentOptions
クラス:
アクセラレータ キー (ショートカット キー) に応答するブラウザーを有効または無効にする
ICoreWebView2AcceleratorKeyPressedEventArgs
には IsBrowserAcceleratorKeyEnabled
プロパティがあり、ブラウザーがアクセラレータ キー (ショートカット キー) ( Ctrl + P や F3 など) を処理するかどうかを制御できます。
関連項目:
-
CoreWebView2AcceleratorKeyPressedEventArgs
クラス:
全画面表示
WebView2 では、HTML 要素が全画面表示に入ったり、全画面表示から離れたりするタイミングを確認できます。
PDF ツール バー
ブラウザーの PDF ビューアーには、上部に PDF 固有のツール バーがあります。 WebView2 では、PDF ビューアー ツール バーの一部の項目を非表示にすることができます。
-
CoreWebView2Settings
クラス:
テーマ
WebView2 では、カラー テーマをシステム、ライト、またはダークとしてカスタマイズできます。
-
CoreWebView2Profile
クラス:
言語
Language
プロパティは、ブラウザー UI (コンテキスト メニューやダイアログなど) に適用される WebView2 の既定の表示言語を設定し、WebView2 が Web サイトに送信するaccept-language
HTTP ヘッダーを設定します。
ScriptLocale
プロパティを使用すると、ホスト アプリは、Intl
すべての JavaScript API と、それに依存するその他の JavaScript API (Intl.DateTimeFormat()
など) の既定のロケールを設定できます。これは、時刻/日付形式の文字列形式に影響します。
-
CoreWebView2EnvironmentOptions
クラス: -
CoreWebView2ControllerOptions
クラス:
新しいウィンドウ
WebView2 には、JavaScript 関数 window.open()
を処理する機能が用意されています。
ウィンドウを閉じる
WebView2 には、JavaScript 関数 window.close()
を処理する機能が用意されています。
-
CoreWebView2
クラス: -
CoreWebView2Controller
クラス:
ドキュメント タイトル
アプリは、現在の最上位ドキュメントのタイトルが変更されたことを検出できます。
-
CoreWebView2
クラス:
Favicon
WebView2 では、Web サイトの Favicon を設定したり、変更されたときに通知を受け取ったりできます。
-
CoreWebView2
クラス:
セキュリティとプライバシー
追跡防止
追跡防止を使用すると、ホスト アプリは、ユーザー プロファイルに関連付けられている WebView2 コントロールの追跡防止のレベルを制御できます。
-
CoreWebView2EnvironmentOptions
クラス: -
CoreWebView2Profile
クラス: -
CoreWebView2TrackingPreventionLevel 列挙型
None
Basic
Balanced
Strict
SmartScreen
Microsoft Defender SmartScreen ("SmartScreen") は既定で有効になっています。
IsReputationCheckingRequired
プロパティは、SmartScreen が有効かどうかを制御します。
SmartScreen を無効にしない場合は、ソフトウェアに SmartScreen Microsoft Defenderが含まれていることをすべてのユーザーに通知し、Microsoft プライバシーに関する声明と Microsoft Edge プライバシー ホワイト ペーパーの SmartScreen で開示されているように、ユーザーの情報を収集して Microsoft に送信する必要があります。
関連項目:
- WebView2 のデータとプライバシーのSmartScreen。
-
CoreWebView2Settings
クラス:
カスタム クラッシュ レポート
WebView2 プロセスがクラッシュした場合、1 つ以上のミニダンプ ファイルが作成され、診断のために Microsoft に送信されます。 この API を使用して、診断を実行して分析を実行するときにクラッシュ レポートをカスタマイズします。
- クラッシュ ダンプが Microsoft に送信されないようにするには、
IsCustomCrashReportingEnabled
プロパティをfalse
に設定します。 - クラッシュ ダンプを見つけてカスタマイズするには、
CrashDumpFolderPath
プロパティを使用します。
関連項目:
- WebView2 のデータとプライバシーのカスタム クラッシュ レポート。
- ミニダンプ ファイル
-
CoreWebView2EnvironmentOptions
クラス: -
CoreWebView2Environment
クラス:
ブラウザー拡張機能
アプリは、ブラウザー拡張機能 (アドオン) を使用する WebView2 コントロールを埋め込むことができます。 Microsoft Edge 拡張機能 は、開発者が Microsoft Edge の機能を追加または変更してユーザーの閲覧エクスペリエンスを向上させるために使用する小さなアプリです。
関連項目:
CoreWebView2EnvironmentOptions
クラス:CoreWebView2Profile
クラス:
プロセス管理
アプリがそれに応じてアクションを実行できるように、WebView2 プロセスの実行、プロセスの終了、失敗したプロセスに関する情報を取得します。
以下のサブセクション:
-
CoreWebView2
クラス: - CoreWebView2BrowserProcessExitedEventArgs クラス
-
CoreWebView2Environment
クラス: - CoreWebView2ProcessFailedEventArgs クラス
- CoreWebView2ProcessFailedKind 列挙型
- CoreWebView2ProcessFailedReason 列挙型
- CoreWebView2ProcessInfo クラス
フレーム プロセス情報
GetProcessExtendedInfos
を含むフレーム プロセス情報 API は、関連するレンダラー プロセスでアクティブに実行されているすべてのフレームのスナップショットコレクションを提供します。 この API を使用すると、WebView2 のどの部分でメモリや CPU 使用率などのリソースが消費されているかをアプリで検出できます。
CoreWebView2Environment
クラス:CoreWebView2ProcessExtendedInfo
クラス:CoreWebView2
クラス:CoreWebView2Frame
クラス:CoreWebView2FrameInfo
クラス:
ページに移動し、読み込まれたコンテンツを管理する
WebView2 コントロールを使用して、アプリは Web ページへのナビゲーションを管理し、Web ページに読み込まれたコンテンツを管理できます。
以下のサブセクション:
- WebView2 に読み込まれたコンテンツを管理する
- ナビゲーション履歴
- ナビゲーションの種類
- 不要なナビゲーションをブロックする
- ナビゲーション イベント
- WebView2 でネットワーク要求を管理する
- カスタム スキームの登録
- クライアント証明書
- サーバー証明書
- 外部 URI スキームを起動する
WebView2 に読み込まれたコンテンツを管理する
これらの API は、コンテンツの読み込み、読み込みを停止し、WebView2 に再読み込みします。 読み込まれるコンテンツは次のとおりです。
- URL からのコンテンツ。
- HTML の文字列。
- 仮想ホスト名を使用したローカル コンテンツからローカル フォルダーへのマッピング。
- 構築されたネットワーク要求からのコンテンツ。
関連項目:
-
CoreWebView2
クラス:- CoreWebView2.ClearVirtualHostNameToFolderMapping メソッド
- CoreWebView2.Navigate メソッド
- CoreWebView2.NavigateToString メソッド
- CoreWebView2.NavigateWithWebResourceRequest メソッド
- CoreWebView2.Reload メソッド
- CoreWebView2.SetVirtualHostNameToFolderMapping メソッド
- CoreWebView2.Stop メソッド
- CoreWebView2.WebResourceRequested イベント
-
CoreWebView2Settings
クラス:
ナビゲーション履歴
履歴メソッドを使用すると、WebView2 で前後のナビゲーションが可能になり、履歴イベントは履歴と WebView2 の現在のソースでの変更に関する情報を提供します。
ナビゲーションの種類
NavigationKind
は、戻る/進む、再読み込み、新しいドキュメントへのナビゲーションなど、各ナビゲーションのナビゲーションの種類を取得します。
-
CoreWebView2NavigationStartingEventArgs
クラス: - CoreWebView2NavigationKind 列挙型
不要なナビゲーションをブロックする
NavigationStarting
イベントを使用すると、アプリは WebView2 で指定された URL への移動 (フレームを含む) への移動を取り消すことができます。
-
CoreWebView2
クラス:- CoreWebView2.NavigationStarting イベント
-
CoreWebView2.FrameNavigationStarting イベント - 置き換えられます。代わりに
CoreWebView2Frame.NavigationStarting
を使用する
-
CoreWebView2Frame
クラス: - CoreWebView2NavigationStartingEventArgs クラス
ナビゲーション イベント
NavigationStarting
およびその他のナビゲーション イベントを使用すると、WebView2 のナビゲーションの状態をアプリに通知できます。
ナビゲーションは、新しい URL を読み込むプロセスです。
関連項目:
-
CoreWebView2
クラス:- CoreWebView2.ContentLoading イベント
- CoreWebView2.DOMContentLoaded イベント
-
CoreWebView2.FrameNavigationCompleted イベント - 置き換えられます。代わりに
CoreWebView2Frame.NavigationCompleted
を使用してください。 - CoreWebView2.NavigationCompleted イベント
- CoreWebView2ContentLoadingEventArgs クラス
- CoreWebView2DOMContentLoadedEventArgs クラス
-
CoreWebView2Frame
クラス: - CoreWebView2NavigationCompletedEventArgs クラス
WebView2 でネットワーク要求を管理する
WebResourceRequested
イベントを使用すると、アプリは WebView2 のすべてのネットワーク要求をインターセプトしてオーバーライドできます。
WebResourceResponseReceived
イベントを使用すると、アプリは、送信された要求とネットワークから受信した応答を監視できます。
関連項目:
CoreWebView2
クラス:
カスタム スキームの登録
CustomSchemeRegistration
を使用すると、WebView2 でのカスタム スキームの登録が可能になり、アプリはそれらのカスタム スキーム URL への要求に対するWebResourceRequested
イベントを処理し、WebView2 をそのような URL に移動できます。
- CoreWebView2CustomSchemeRegistration クラス
-
CoreWebView2EnvironmentOptions
クラス:
クライアント証明書
WebView2 では、クライアント証明書 API を使用して、アプリケーション レベルでクライアント証明書を選択できます。 この API を使用すると、次のことができます。
- 必要に応じて、ユーザーに UI を表示します。
- 既定のクライアント証明書ダイアログ プロンプトを置き換えます。
- プログラムによって証明書のクエリを実行します。
- WebView2 が HTTP 認証用のクライアント証明書を必要とする HTTP サーバーに要求を行っているときに、サーバーに応答する証明書を一覧から選択します。
サーバー証明書
WebView2 では、サーバー証明書 API を使用して、アプリケーション レベルでサーバーの TLS 証明書を信頼できます。 これにより、ホスト アプリは、TLS エラーについてユーザーにプロンプトを表示せずにページをレンダリングしたり、ホスト アプリで要求を自動的に取り消したりできます。
外部 URI スキームを起動する
OS に登録されている URI スキームを起動します。
-
CoreWebView2
クラス: -
CoreWebView2LaunchingExternalUriSchemeEventArgs クラス
- CoreWebView2LaunchingExternalUriSchemeEventArgs.Cancel プロパティ
- CoreWebView2LaunchingExternalUriSchemeEventArgs.InitiatingOrigin プロパティ
- CoreWebView2LaunchingExternalUriSchemeEventArgs.IsUserInitiated プロパティ
- CoreWebView2LaunchingExternalUriSchemeEventArgs.Uri プロパティ
- CoreWebView2LaunchingExternalUriSchemeEventArgs.GetDeferral メソッド
iframes
iframe を使用すると、他の Web ページを独自の Web ページに埋め込むことができます。 WebView2 では、次のことができます。
- iframe がいつ作成されているかを確認します。
- iframe が移動するタイミングを確認します。
- X フレーム オプションのバイパスを許可します。
関連項目:
認証
アプリは、WebView2 コントロールを使用して基本認証を処理できます。 基本認証 は、HTTP プロトコルの一部である特定の認証方法です。
関連項目:
非フレームワーク アプリでの WebView2 のレンダリング
ホスト アプリで UI フレームワークが使用されていない場合は、これらの API を使用して WebView2 レンダリング システムを設定します。 このレンダリング設定は、WebView2 がホスト アプリに出力をレンダリングする方法と、WebView2 が入力、フォーカス、アクセシビリティを処理する方法を制御します。
これらの API を使用する場合
UI フレームワーク - アプリの UI フレームワークを使用している場合は、これらの API を使用するのではなく、その UI フレームワークによって提供される WebView2 要素を使用する必要があります。
UI フレームワークがなく、コンポジションを使用しない - アプリに UI フレームワークを使用していない場合 (たとえば、純粋な Win32 を直接使用している場合)、または UI フレームワークに WebView2 要素がない場合は、このセクションのこれらの API を使用して
CoreWebView2Controller
を作成してアプリにレンダリングする必要があります。UI フレームワークがなく、Composition を使用 する - アプリ UI が DirectComposition または Windows.UI.Composition を使用してビルドされている場合は、これらの API を使用するのではなく、
CoreWebView2CompositionController
を使用する必要があります。後述の 「Composition を使用した WebView2 のレンダリング」を参照してください。
以下のサブセクション:
-
CoreWebView2Controller
クラス: -
CoreWebView2Environment
クラス:
サイズ設定、配置、可視性
CoreWebView2Controller
は親 HWND
を受け取ります。
Bounds
プロパティは、親HWND
を基準にして WebView2 のサイズと位置を設定します。 WebView2 の可視性は、 IsVisible
を使用して切り替えることができます。
-
CoreWebView2Controller
クラス:
ズーミング
WebView2 ZoomFactor
は、ウィンドウの Web コンテンツのみをスケーリングするために使用されます。 UI スケーリングは、ユーザーがマウス ホイールを回転しながら Ctrl キー を押してコンテンツをズームするときにも更新されます。
-
CoreWebView2Controller
クラス: -
CoreWebView2Settings
クラス:
ラスター化スケール
RasterizationScale API は、コンテキスト メニュー、ヒント、ポップアップを含むすべての WebView2 UI をスケーリングします。 アプリは、WebView2 でモニタースケールの変更を検出し、RasterizationScale を自動的に更新するかどうかを設定できます。
BoundsMode
は、Bounds プロパティを生ピクセルとして解釈するか、DIP ( RasterizationScale
でスケーリングする必要があるか) を構成するために使用されます。
フォーカスとタブ
WebView2 コントロールは、コントロールがフォーカスを取得するか、フォーカスを失うタイミングをアプリに知らせるためにイベントを発生させます。 タブ移動 ( Tab キーを押す) には、WebView2 にフォーカスを移動する API と、WebView2 がアプリにフォーカスを取り戻すよう要求するイベントがあります。
親ウィンドウ
WebView2 は、別の親ウィンドウ ハンドル (HWND
) に再親できます。 また、WebView2 は、画面上のアプリの位置が変更されたときにも通知する必要があります。
-
CoreWebview2Controller
クラス:
キーボード アクセラレータ
WebView2 にフォーカスがある場合は、ユーザーからの入力を直接受け取ります。 アプリでは、特定のアクセラレータ キーの組み合わせ (ショートカット キー) をインターセプトして処理したり、通常のブラウザー アクセラレータ キーの動作を無効にしたりできます。
上記の 「アクセラレータ キー (ショートカット キー)に応答するブラウザーを有効または無効にする」も参照してください。
- CoreWebView2AcceleratorKeyPressedEventArgs クラス
-
CoreWebView2Controller
クラス: -
CoreWebView2Settings
クラス:
既定の背景色
WebView2 では、既定の背景色を指定できます。 色は、任意の不透明な色、または透明にすることができます。 この色は、HTML ページで独自の背景色が設定されていない場合に使用されます。
-
CoreWebView2Controller
クラス:
Composition を使用した WebView2 のレンダリング
合成ベースの WebView2 レンダリングの場合は、 CoreWebView2Environment
を使用して CoreWebView2CompositionController
を作成します。
CoreWebView2CompositionController
は、 CoreWebView2Controller
と同じ API を提供しますが、合成ベースのレンダリング用の API も含まれています。
以下のサブセクション:
- CoreWebView2CompositionController クラス
-
CoreWebView2Environment
クラス:
ビジュアル ツリーへの接続
WebView2 は、そのコンポジション ツリーを IDCompositionVisual、 IDCompositionTarget、または Windows::UI::Composition::ContainerVisual
に接続できます。
-
CoreWebView2CompositionController
クラス:
転送入力
空間入力 (マウス、タッチ、ペン) はアプリケーションによって受信され、WebView2 に送信する必要があります。 WebView2 は、マウスの位置に基づいてカーソルを更新する必要があるときにアプリに通知します。
-
CoreWebView2CompositionController
クラス: -
CoreWebView2Environment
クラス: - CoreWebView2PointerInfo クラス
ドラッグ アンド ドロップ
WebView2 コントロールから別のアプリケーションへのドラッグは、既定でサポートされています。 ただし、WebView2 コントロール に ドラッグするには、ホスト アプリがシステムから IDropTarget
イベントを受け取るときに、ホスト アプリがイベントを WebView2 コントロールに転送する必要があります。 WebView2 コントロールにドラッグすると、WebView2 コントロール内に完全に含まれるドラッグ アンド ドロップ操作が含まれます。
次の API を使用して、 IDropTarget
イベントをシステムから WebView2 コントロールに転送します。
-
CoreWebView2CompositionController
クラス:
アクセシビリティ
既定では、WebView2 は、Win32/C++ アプリの親 HWND の子としてアクセシビリティ ツリーに表示されます。 WebView2 は、アプリケーション内の他の要素に対して WebView2 コンテンツをより適切に配置するための API を提供します。
環境オプション
以下のサブセクション:
ユーザー データ
ユーザーのコンピューター上のフォルダーであるユーザー データ フォルダー (UDF) を管理します。 UDF には、ホスト アプリと WebView2 に関連するデータが含まれています。 WebView2 アプリでは、ユーザー データ フォルダーを使用して、Cookie、アクセス許可、キャッシュされたリソースなどのブラウザー データを格納します。
以下のサブセクション:
関連項目:
-
CoreWebView2Environment
クラス: -
CoreWebView2EnvironmentOptions
クラス:
閲覧データのクリア:
-
CoreWebView2Profile
クラス: - CoreWebView2BrowsingDataKinds 列挙型
複数のプロファイル
1 つのユーザー データ フォルダーで複数のプロファイルを管理します。
関連項目:
プロファイルを定義する options オブジェクトを作成します。
-
CoreWebView2Environment
クラス: - CoreWebView2ControllerOptions クラス
プロファイルを使用する WebView2 コントロールを作成します。
-
CoreWebView2Environment
クラス:
プロファイルにアクセスして操作します。
-
CoreWebView2
クラス: - CoreWebView2Profile クラス
プロファイルを削除する
アプリは、WebView2 Web ブラウザー コントロールのユーザー プロファイルを削除できます。
関連項目:
-
CoreWebView2Profile
クラス:
ランタイムの選択
ランタイムの選択では、プレリリース テストとセルフホスティングがサポートされます。 WebView2 環境を作成する場合:
- ブラウザー プレビュー チャネルの検索順序を指定するには、
CoreWebView2EnvironmentOptions.ChannelSearchKind
プロパティを使用します。 - 検索するブラウザー プレビュー チャネルを指定するには、
CoreWebView2EnvironmentOptions.ReleaseChannels
プロパティを使用します。
関連項目:
CoreWebView2EnvironmentOptions
クラス:CoreWebView2ChannelSearchKind 列挙型
MostStable
LeastStable
CoreWebView2ReleaseChannels 列挙型
None
Stable
Beta
Dev
Canary
パフォーマンスとデバッグ
パフォーマンスを分析してデバッグし、パフォーマンス関連のイベントを処理し、メモリ使用量を管理してアプリの応答性を高めます。
以下のサブセクション:
メモリ使用量ターゲット
low
やnormal
など、メモリ消費レベルを指定します。
Chrome DevTools プロトコル (CDP)
Chrome DevTools Protocol (CDP) には、Chromium ベースのブラウザーをインストルメント化、検査、デバッグ、プロファイルするための API が用意されています。 Chrome DevTools プロトコルは、Microsoft Edge DevTools の基盤です。 WebView2 プラットフォームに実装されていない機能には、Chrome DevTools プロトコルを使用します。
関連項目:
開ける:
-
CoreWebView2Settings
クラス: -
CoreWebView2
クラス:
呼び出し:
-
CoreWebView2
クラス:
受話器:
関連項目
- Microsoft Edge WebView2 の概要
- WebView2 API リファレンス - WinRT/C++ (COM) などの追加のプラットフォームと言語の API リファレンス リンク。