WebView2 API の概要

アプリに WebView2 コントロールを埋め込むと、WebView2 クラスまたはインターフェイスを通じて提供されるメソッドとプロパティを使用して、さまざまなブラウザー機能にアプリがアクセスできるようになります。

WebView2 には、アプリのネイティブ プラットフォーム機能の強化から、アプリでブラウザー エクスペリエンスを変更できるようにするものまで、幅広い機能セットを提供する数百の API があります。 この記事では、WebView2 を使用して実行できるさまざまな操作を理解するために、WebView2 API の高レベルのグループ化を提供します。

詳細な内容:

トップレベルの機能領域の概要

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 が入力、フォーカス、アクセシビリティを処理する方法を制御します。
コンポジションを使用した WebView2 のレンダリング コンポジションベースの WebView2 レンダリングの場合は、 CoreWebView2Environment を使用して CoreWebView2CompositionControllerを作成します。 CoreWebView2CompositionController CoreWebView2Controller と同じ API を提供しますが、合成ベースのレンダリング用の API も含まれています。
環境オプション ユーザー データ: ユーザーのコンピューター上のフォルダーであるユーザー データ フォルダー (UDF) を管理します。 UDF には、ホスト アプリと WebView2 に関連するデータが格納されます。 WebView2 アプリでは、ユーザー データ フォルダーを使用して、Cookie、アクセス許可、キャッシュされたリソースなどのブラウザー データを格納します。 単一の UDF で複数のプロファイルを管理します。
ランタイムの選択では 、プレリリース テストとセルフホスティングがサポートされます。 ブラウザー プレビュー チャネルの検索順序を指定したり、検索するブラウザー プレビュー チャネルを指定したりできます。
パフォーマンスとデバッグ パフォーマンスの分析とデバッグ、パフォーマンス関連イベントの処理、メモリ使用量の管理を行ってアプリの応答性を向上させます。
Chrome DevTools プロトコル (CDP) Chromium ベースのブラウザーをインストルメント化、検査、デバッグ、プロファイリングします。 Chrome DevTools プロトコル (CDP) は、Microsoft Edge DevTools の基盤です。 WebView2 プラットフォームに実装されていない機能には、Chrome DevTools プロトコルを使用します。

このページでは、リリース SDK に含まれる API のみを一覧表示します。試験的な API や、リリース SDK でまだ使用できない安定した API は一覧表示されていません。 実験的な API を含む API の包括的な一覧については、 WebView2 のリリース ノートを参照してください。

主なクラス: 環境、コントローラー、コア

CoreWebView2Environment、CoreWebView2Controller、CoreWebView2 クラス (または同等のインターフェイス) が連携して動作することで、アプリで WebView2 ブラウザー コントロールをホストし、そのブラウザー機能にアクセスできます。 これら 3 つの大きなクラスは、ホスト アプリがアクセスできる幅広い API を公開して、多くのカテゴリのブラウザー関連機能をユーザーに提供します。

  • CoreWebView2Environment クラスは、同じ WebView2 ブラウザー プロセス、ユーザー データ フォルダー、レンダラー プロセスを共有する WebView2 コントロールのグループを表します。 この CoreWebView2Environment クラスから、 CoreWebView2Controller インスタンスと CoreWebView2 インスタンスのペアを作成します。

  • CoreWebView2Controller クラスは、ウィンドウ フォーカス、可視性、サイズ、入力などのホスティング関連の機能を担当し、アプリで WebView2 コントロールがホストされます。

  • CoreWebView2 クラスは、ネットワーク、ナビゲーション、スクリプト、HTML の解析とレンダリングなど、WebView2 コントロールの Web 固有の部分用です。

関連項目:

Web/ネイティブ相互運用

Microsoft Edge WebView2 コントロールを使用すると、Web コンテンツをネイティブ アプリケーションに埋め込むことができます。 ネイティブ コードと Web コードの間では、シンプルなメッセージ、JavaScript コード、ネイティブ オブジェクトを使用して通信できます。 Web とネイティブ コードの間で通信するための主な API を次に示します。

Web/ネイティブ相互運用の一般的なユース ケース:

  • 別の Web サイトに移動した後に、ネイティブ ホスト ウィンドウのタイトルを更新する。
  • ネイティブ カメラ オブジェクトを送信し、そのメソッドを Web アプリから使用する。
  • アプリケーションの Web 側で専用の JavaScript ファイルを実行する。

関連項目:

ホスト/Web オブジェクト共有

WebView2 を使用すると、ネイティブ コードで定義されたオブジェクトをアプリの Web 側コードに渡すことができます。 ホスト オブジェクト はネイティブ コードで定義されたオブジェクトで、アプリの Web 側コードに渡すことを選択できます。

ホスト オブジェクトを JavaScript に投影できるため、アプリの Web 側コードからネイティブ オブジェクト メソッド (または他の API) を呼び出すことができます。 たとえば、アプリの Web 側でのユーザー操作の結果として、そのような API を呼び出すことができます。 このようにして、メソッドやプロパティなどのネイティブ オブジェクトの API を Web 側コードに再実装する必要はありません。

スクリプトの実行

ホスト アプリが WebView2 コントロール内の Web コンテンツに JavaScript コードを追加できるようにします。

Web メッセージング

アプリは、WebView2 コントロール内の Web コンテンツにメッセージを送信し、その Web コンテンツからメッセージを受信できます。 メッセージは、文字列または JSON オブジェクトとして送信されます。

必要に応じて、PostWebMessageAsJson (.NET、WinRT) の additionalObjects パラメーターまたは PostWebMessageAsJsonWithAdditionalObjects (Win32) を使用して、DOM オブジェクトをメッセージと共に投稿および受信できます。 WebView2 CoreWebView2FileSystemHandle クラスは DOM FileSystemHandleを表し、 CoreWebView2File は DOM Fileを表します。 JavaScript リファレンスの chrome.webview.postMessageWithAdditionalObjects も参照してください。

スクリプト ダイアログ

WebView2 をホストする場合、アプリでさまざまな JavaScript ダイアログを管理して、非表示にしたり、カスタム ダイアログに置き換えたりすることができます。

共有バッファー

SharedBuffer API は、OS からの共有メモリに基づいて、WebView2 ホスト アプリ プロセスと WebView2 レンダラー プロセスとの間でのバッファーの共有をサポートします。

関連項目:

ブラウザーの機能

WebView2 コントロールを使用すると、アプリは多くのブラウザー機能にアクセスできるようになります。 これらのブラウザー機能を変更して、オンまたはオフにすることができます。

印刷

カスタム印刷設定を構成することで、Web ページをプリンター、PDF ファイル、または PDF ストリームに印刷できます。

関連項目:

Cookie

WebView2 で Cookie を使用して、ユーザー セッションの管理、ユーザーの個人設定設定の保存、ユーザーの行動の追跡を行うことができます。

関連項目:

画像キャプチャ

WebView2 をホストすることで、アプリはスクリーンショットをキャプチャし、画像の保存に使用する形式を示すことができます。

画面キャプチャ UI を表示するかどうかを制御する

UI が表示される前に、CoreWebView2Frame (またはその子孫 iframe のいずれか) に対応する WebView2 や iframe が画面Capture API を使用する許可を要求するたびに、ScreenCaptureStarting イベントが発生します。 その後、アプリで UI の表示をブロックすることも、UI の表示を許可することもできます。

検索

Find API を使用すると、 Find 操作をプログラムで制御し、次の機能をアプリに追加できます:

  • 検索用語、大文字と小文字の区別、Word 照合、一致の強調表示、既定の UI 抑制など、検索オプションをカスタマイズします。
  • テキスト文字列を検索し、WebView2 コントロール内でそれらの間を移動します。
  • プログラムで Find 操作を開始し、 検索 結果に移動します。
  • 既定の [検索 UI] を非表示にします。
  • 検索操作の状態を追跡します。

PDF ドキュメントの Find API には既知の問題があります。 WebView2 コントロール内で PDF ドキュメントを表示する場合、 検索 機能は現在、最初のインデックスと見つかった一致の数のみを提供します。 たとえば、文字列が PDF 内で 3 回出現する場合、UI には 1/3 と表示され、プログラムによる Next または Before の呼び出しをサポートしません。

Microsoft ではこれらの問題を積極的に調査しています。発生した問題については、 WebView2Feedback リポジトリを使用して報告することをお勧めします。

ダウンロード

アプリは、WebView2 でダウンロード エクスペリエンスを管理できます。 アプリでは次のことができます:

  • 異なるメタデータに基づいてダウンロードを許可またはブロックします。
  • ダウンロード場所を変更します。
  • カスタム ダウンロード UI を構成します。
  • 既定の UI をカスタマイズします。

全般:

既定のエクスペリエンスを変更します。

カスタム ダウンロード エクスペリエンス:

名前を付けて保存

名前を付けて保存 API を使用すると、プログラムで 名前を付けて保存 操作を実行できます。 これらの API を使用して、既定の [名前を付けて保存 ] ダイアログをブロックし、サイレント保存するか、[ 名前を付けて保存] 用に独自の UI をビルドすることができます。 これらの API は、[ 名前を付けて保存 ] ダイアログにのみ関連し、ダウンロード API を使用する [ ダウンロード ] ダイアログには関連しません。

ファイルを保存するときのセキュリティ警告を構成する

SaveFileSecurityCheckStarting イベントをリッスンすることで、アプリでこのイベントのハンドラーを登録し、ファイル パス、ファイル名拡張子、ドキュメントの元の URI 情報を取得できます。 その後、独自のルールを適用して、次のようなアクションを実行できます。

  • ファイルの種類ポリシーに関する既定のセキュリティ警告 UI を表示せずにファイルを保存できるようにします。
  • 保存を取り消します。
  • ランタイム ファイルの種類ポリシーを管理する独自の UI を作成します。

Web 通知の処理

Web 通知 API は、非永続的な通知をサポートします。 CoreWebView2 の NotificationReceived イベントは Web 通知の処理を制御し、ホスト アプリによるカスタマイズや抑制を許可します。 未処理の通知は、既定で WebView2 の UI になります。

アクセス許可

Web ページによっては、位置情報センサー、カメラ、マイクなど、一部の特権リソースにアクセスするためのアクセス許可を求める場合があります。 ホスト アプリは、プログラムでアクセス許可の要求に応答でき、既定のアクセス許可 UI を独自の UI に置き換えることができます。

コンテキスト メニュー

WebView2 コントロールには、カスタマイズまたは無効にできる既定のコンテキスト メニュー (右クリック メニュー) があり、独自のコンテキスト メニューを作成することもできます。

関連項目:

ステータス バー

ステータス バーはページの左下にあり、表示されている Web ページの状態を表示します。 WebView2 では、ステータス バーを有効または無効にしたり、ステータス バーのテキストを取得したり、ステータス バーのテキストが変更されたタイミングを調べたりすることができます。

Fluent オーバーレイ スクロールバー

Microsoft Fluent デザインを使用してスクロールバーをスタイル化し、スクロールバーを Web コンテンツの上にオーバーレイします。 このアダプティブ スクロール バーのデザインは、さまざまなデバイスやウィンドウ サイズに合わせて調整されます。

Fluent オーバーレイ スクロールバーを試すには、Microsoft Edge で edge://flags に移動し、「 Fluent オーバーレイ スクロールバー」と入力します。

関連項目:

ユーザー エージェント

ユーザー エージェントは、ブラウザー名など、ユーザーに代わってプログラムの ID を表す文字列です。 WebView2 では、ユーザー エージェントを設定できます。

関連項目:

オートフィル

アプリは、ブラウザーのオートフィル機能を一般情報またはパスワードのどちらに対して有効にするかを個別に制御できます。

オーディオ

アプリでは、すべてのオーディオをミュートおよびミュート解除し、オーディオが再生されているタイミングを確認できます。

領域でのマウス クリックのヒット テスト

WebView2 に含まれるリージョンでのヒット テスト結果を提供します。 WebView2 ウィンドウのクライアント以外の領域でマウス イベントを処理する、視覚的にホストされたアプリケーションに役立ちます。

スワイプ ジェスチャ ナビゲーション

WebView2 コントロールをホストすることで、アプリはタッチ入力対応デバイスでスワイプ ジェスチャ ナビゲーションを有効または無効にできます。 このジェスチャにより、エンド ユーザーは次の機能を利用できます。

  • 左/右にスワイプ (水平方向にスワイプ) して、ナビゲーション履歴の前または次のページに移動します。
  • プルして現在のページを更新 (垂直方向にスワイプ) します。

この機能は現在、ブラウザーで既定で無効になっています。 WebView2 でこの機能を有効にするには、--pull-to-refresh スイッチを指定して AdditionalBrowserArguments プロパティを設定します。

アクセル キー (ショートカット キー) に応答するブラウザーを有効または無効にする

ICoreWebView2AcceleratorKeyPressedEventArgsブラウザーが Ctrl+P や F3 などのアクセラレータ キー (ショートカット キー) を処理するかどうかを制御できる IsBrowserAcceleratorKeyEnabled プロパティがあります。

関連項目:

全画面表示

WebView2 では、HTML 要素が全画面表示に入ったり終了したりするタイミングを確認できます。

PDF ツール バー

ブラウザーの PDF ビューアーの上部には、PDF 専用のツール バーがあります。 WebView2 では、PDF ビューアー ツール バーの一部の項目を非表示にすることができます。

テーマ

WebView2 では、カラー テーマをシステム、ライト、ダークとしてカスタマイズできます。

言語

Language プロパティは、WebView2 が Web サイトに送信するaccept-language HTTP ヘッダーを設定するとともに、ブラウザー UI (コンテキスト メニューやダイアログなど) に適用される WebView2 の既定の表示言語を設定します。

ScriptLocale プロパティを使用すると、ホスト アプリは、すべての Intl JavaScript API と、それに依存する他の JavaScript API (Intl.DateTimeFormat() など) の既定のロケールを設定できます。これは、時刻/日付形式の文字列書式設定に影響します。

新しいウィンドウ

WebView2 には、JavaScript 関数の window.open()を処理する機能が用意されています。

ウィンドウを閉じる

WebView2 には、JavaScript 関数の window.close()を処理する機能が用意されています。

文書のタイトル

アプリでは、現在の最上位ドキュメントのタイトルが変更されたときに検出できます。

ファビコン

WebView2 では、Web サイトの ファビコン を設定したり、変更されたときに通知を受け取ったりできます。

セキュリティとプライバシー

追跡防止

追跡防止を使用すると、ホスト アプリは、ユーザー プロファイルに関連付けられている WebView2 コントロールの追跡防止のレベルを制御できます。

SmartScreen

Microsoft Defender SmartScreen ("SmartScreen") は既定で有効になっています。 IsReputationCheckingRequired プロパティは、SmartScreen を有効にするかどうかを制御します。

SmartScreen を無効にしない場合は、Microsoft のプライバシーに関する声明および Microsoft Edge のユーザー データとプライバシーの SmartScreen に開示されているように、お客様のソフトウェアに Microsoft Defender SmartScreen が含まれており、ユーザーの情報を収集して Microsoft に送信することをすべてのユーザーに通知する必要があります。

関連項目:

  • WebView2 のデータとプライバシーの SmartScreen。
カスタム クラッシュ レポート

WebView2 プロセスがクラッシュすると、1 つ以上のミニダンプ ファイルが作成され、診断のために Microsoft に送信されます。 この API を使用して、診断の実行と分析の実行時にクラッシュ レポートをカスタマイズします。

  • クラッシュ ダンプが Microsoft に送信されないようにするには、 IsCustomCrashReportingEnabled プロパティを false に設定します。
  • クラッシュ ダンプを検索しカスタマイズするには、 CrashDumpFolderPath プロパティを使用します。

関連項目:

ブラウザー拡張機能

アプリには、Microsoft Edge 拡張機能を使用する WebView2 コントロールを埋め込むことができます。 Microsoft Edge 拡張機能は、開発者が Microsoft Edge の機能を追加または変更してユーザーの閲覧エクスペリエンスを向上させるために使用する小さなアプリです。

関連項目:

プロセス管理

WebView2 プロセスの実行、終了中のプロセス、失敗したプロセスに関する情報を取得して、アプリがそれに応じてアクションを取れるようにします。

フレーム プロセス情報

フレーム プロセス情報 API (GetProcessExtendedInfos を含む) は、関連付けられているレンダラー プロセスでアクティブに実行されているすべてのフレームのスナップショット コレクションを提供します。 この API により、アプリは WebView2 のどの部分がメモリや CPU 使用率などのリソースを消費しているかを検出できます。

バックグラウンド処理とオフライン サポートを有効にする (WebView2 Worker API)

WebView2 Worker API を使用すると、ホスト アプリケーションは Web Worker と対話して、メイン スレッドからタスクをオフロードし、応答性を向上させ、バックグラウンド操作をサポートできます。 これらの Web ワーカーには、専用ワーカー、共有ワーカー、およびサービス ワーカーが含まれます。

これらの API は、次の機能を提供します。

  • ライフサイクル イベント: ワーカーの作成と破壊を監視します。
  • メッセージング インターフェイス:PostMessage と WebMessageReceived を使用してワーカーと通信します。具体的には、次のとおりです。
    • CoreWebView2ServiceWorker.PostWebMessageAsJson
    • CoreWebView2ServiceWorker.PostWebMessageAsString
    • CoreWebView2DedicatedWorker.PostWebMessageAsJson
    • CoreWebView2DedicatedWorker.PostWebMessageAsString
    • CoreWebView2ServiceWorker.WebMessageReceived
    • CoreWebView2DedicatedWorker.WebMessageReceived
    • chrome.webview.postMessage
    • 次の項目ではありません。 chrome.webview.postMessageWithAdditionalObjects
  • ワーカー管理: worker の登録とインスタンスをクエリおよび取得します。

WebView2 コントロールを使用すると、アプリは Web ページへのナビゲーションを管理し、Web ページに読み込まれるコンテンツを管理できます。

WebView2 に読み込まれたコンテンツの管理

これらの API は、WebView2 へのコンテンツの読み込み、読み込み停止、および再読み込みを行います。 読み込まれるコンテンツは次のとおりです。

  • URL からのコンテンツ。
  • HTML の文字列。
  • 仮想ホスト名からローカル フォルダーへのマッピングを使用したローカル コンテンツ。
  • 構築されたネットワーク要求からのコンテンツ。

関連項目:

履歴メソッドを使用すると、WebView2 での前後のナビゲーションが可能になり、履歴イベントは、履歴の変更と WebView2 の現在のソースに関する情報を提供します。

NavigationKind 戻る/進む、再読み込み、新しいドキュメントへのナビゲーションなど、各ナビゲーションのナビゲーションの種類を取得します。

不要なナビゲーションをブロックする

NavigationStarting イベントを使用すると、アプリはフレームを含む WebView2 の指定された URL へのナビゲートを取り消すことができます。

NavigationStarting やその他のナビゲーション イベントを使用して、WebView2 のナビゲーションの状態をアプリに通知できます。 ナビゲーションは、新しい URL を読み込むプロセスです。

関連項目:

WebView2 でネットワーク要求を管理する

WebResourceRequested イベントを使用すると、アプリは WebView2 のすべてのネットワーク要求をインターセプトしてオーバーライドできます。 WebResourceResponseReceived イベントを使用すると、アプリはネットワークに送信された要求とネットワークから受信した応答を監視できます。

関連項目:

カスタム スキームの登録

この CustomSchemeRegistration を使用すると、WebView2 にカスタム スキームを登録できるため、アプリはこれらのカスタム スキーム URL への要求の WebResourceRequested イベントを処理し、WebView2 をそのような URL に移動できます。

クライアント証明書

WebView2 では、クライアント証明書 API を使用して、アプリケーション レベルでクライアント証明書を選択できます。 この API を使用すると、次のことが可能になります。

  • 必要に応じて、ユーザーに UI を表示します。
  • 既定のクライアント証明書のダイアログ プロンプトを置き換えます。
  • プログラムで証明書をクエリします。
  • WebView2 が HTTP 認証用のクライアント証明書を必要とする HTTP サーバーに要求を行っているときに、一覧からサーバーに応答する証明書を選択します。

サーバー証明書

WebView2 では、サーバー証明書 API を使用して、サーバーの TLS 証明書をアプリケーション レベルで信頼することができます。 これにより、ホスト アプリは、ユーザーに TLS エラーについてプロンプトを表示することなくページをレンダリングするか、またはホスト アプリが要求を自動的にキャンセルできます。

外部 URI スキームの起動

OS に登録されている URI スキームを起動します。

iframes

iframe を使用すると、他の Web ページを自分の Web ページに埋め込むことができます。 WebView2 では、次のことができます。

  • iframe が作成されるタイミングを確認します。
  • iframe がいつナビゲートしているかを確認します。
  • X フレーム オプションのバイパスを許可します。

関連項目:

認証

アプリは WebView2 コントロールを使用して基本認証を処理できます。 基本認証 は、HTTP プロトコルに含まれる特定の認証方法です。

関連項目:

フレームワーク以外のアプリでの WebView2 のレンダリング

ホスト アプリが UI フレームワークを使用しない場合は、これらの API を使用して WebView2 レンダリング システムをセットアップします。 このレンダリング設定では、WebView2 がホスト アプリに出力をレンダリングする方法と、WebView2 が入力、フォーカス、アクセシビリティを処理する方法を制御します。

これらの API を使用する場合

  • UI フレームワーク - アプリに UI フレームワークを使用している場合は、これらの API を使用するのではなく、その UI フレームワークによって提供される WebView2 要素を使用する必要があります。

  • UI フレームワークがなく、Composition を使用していない場合 - アプリに UI フレームワークを使用していない場合 (たとえば、純粋な Win32 を直接使用している場合)、または UI フレームワークに WebView2 要素がない場合は、このセクションのこれらの API を使用して、 CoreWebView2Controller を作成し、アプリにレンダリングする必要があります。

  • UI フレームワークがなく、Composition を使用 - アプリ UI が DirectComposition または Windows.UI.Composition を使用してビルドされている場合は、これらの API を使用するのではなく、 CoreWebView2CompositionController を使用する必要があります。以下の 「Composition を使用した WebView2 のレンダリング」を参照してください。

サイズ、配置、可視性

CoreWebView2Controller 親 HWNDを取ります。 Bounds プロパティは、親HWNDに対して WebView2 のサイズと位置を設定します。 WebView2 の可視性は、 IsVisible を使用して切り替えることができます。

ズーム

WebView2 ZoomFactor は、ウィンドウの Web コンテンツのみを拡大縮小するために使用されます。 マウス ホイールを回転させながら Ctrl キー を押してコンテンツを拡大すると、UI スケーリングも更新されます。

ラスター化スケール

RasterizationScale API は、コンテキスト メニュー、ヒント、ポップアップなど、すべての WebView2 UI をスケーリングします。 アプリでは、WebView2 がモニター スケールの変更を検出し、RasterizationScale を自動的に更新するかどうかを設定できます。 BoundsMode は、Bounds プロパティを生ピクセルとして解釈するか、DIP ( RasterizationScale単位でスケーリングする必要がある) として解釈するかを構成するために使用します。

フォーカスとタブ

WebView2 コントロールは、イベントを発生させて、コントロールがフォーカスを獲得したとき、またはフォーカスを失ったときにアプリに知らせます。 タブ ( Tab キーを押す) の場合、フォーカスを WebView2 に移動する API と、WebView2 がアプリにフォーカスを取り戻すよう要求するイベントがあります。

親ウィンドウ

WebView2 は、別の親ウィンドウ ハンドル (HWND) に親を再指定できます。 また、画面上のアプリの位置が変更されたときに WebView2 に通知する必要があります。

キーボード アクセラレータ

WebView2 にフォーカスがある場合は、ユーザーから入力を直接受け取ります。 アプリでは、特定のアクセラレータ キーの組み合わせ (ショートカット キー) を傍受して処理したり、通常のブラウザー アクセラレータ キーの動作を無効にしたりすることができます。

上記の 「アクセラレータ キー (ショートカット キー) に応答するブラウザーを有効または無効にする」も参照してください。

既定の背景色

WebView2 は、既定の背景色を指定できます。 色は、任意の不透明な色、または透明な色にすることができます。 この色は、HTML ページで独自の背景色を設定しない場合に使用されます。

関連項目:

コンポジションを使用した WebView2 のレンダリング

コンポジションベースの WebView2 レンダリングの場合は、 CoreWebView2Environment を使用して CoreWebView2CompositionControllerを作成します。 CoreWebView2CompositionController CoreWebView2Controller と同じ API を提供しますが、合成ベースのレンダリング用の API も含まれています。

ビジュアル ツリーへの接続

WebView2 は、そのコンポジション ツリーを IDCompositionVisual、 IDCompositionTarget、または Windows::UI::Composition::ContainerVisualに接続できます。

転送入力

空間入力 (マウス、タッチ、ペン) はアプリケーションが受信し、WebView2 に送信する必要があります。 WebView2 は、マウスの位置に基づいてカーソルを更新する必要がある場合にアプリに通知します。

入力イベント メッセージがブラウザー ウィンドウを通過できるようにする

ユーザー入力イベント メッセージ (キーボード、マウス、タッチ、またはペン) がブラウザー ウィンドウを通過し、アプリ プロセス ウィンドウで受信できるようにします。

ドラッグ アンド ドロップ

WebView2 コントロールから別のアプリケーションへのドラッグは、既定でサポートされています。 ただし、WebView2 コントロール に ドラッグするには、ホスト アプリがシステムから IDropTarget イベントを受信したときに、ホスト アプリがイベントを WebView2 コントロールに転送する必要があります。 WebView2 コントロールへのドラッグには、完全に WebView2 コントロール内で行われるドラッグ アンド ドロップ操作が含まれます。

次の API を使用して、システムから WebView2 コントロールに IDropTarget イベントを転送します。

アクセシビリティ

既定では、WebView2 は Win32/C++ アプリに対して親 HWND の子としてアクセシビリティ ツリーに表示されます。 WebView2 は、アプリケーション内の他の要素と比較して WebView2 コンテンツを適切に配置するための API を提供します。

該当なし。

環境オプション

ユーザー データ

ユーザーのコンピューター上のフォルダーであるユーザー データ フォルダー (UDF) を管理します。 UDF には、ホスト アプリと WebView2 に関連するデータが格納されます。 WebView2 アプリでは、ユーザー データ フォルダーを使用して、Cookie、アクセス許可、キャッシュされたリソースなどのブラウザー データを格納します。

関連項目:

閲覧データのクリア:

複数のプロフィール

1 つのユーザー データ フォルダーの下で複数のプロファイルを管理します。

関連項目:

プロファイルを定義するオプション オブジェクトを作成します。

プロファイルを使用する WebView2 コントロールを作成します。

プロファイルにアクセスして操作します。

プロファイルを削除する

アプリでは、WebView2 Web ブラウザー コントロールのユーザー プロファイルを削除できます。

関連項目:

ランタイムの選択

ランタイムの選択では、プレリリース テストとセルフホスティングがサポートされます。 WebView2 環境を作成する場合:

  • ブラウザー プレビュー チャネルの検索順序を指定するには、 CoreWebView2EnvironmentOptions.ChannelSearchKind プロパティを使用します。
  • 検索するブラウザー プレビュー チャネルを指定するには、 CoreWebView2EnvironmentOptions.ReleaseChannels プロパティを使用します。

関連項目:

パフォーマンスとデバッグ

パフォーマンスの分析とデバッグ、パフォーマンス関連イベントの処理、メモリ使用量の管理を行ってアプリの応答性を向上させます。

メモリ使用量ターゲット

low や normal などのメモリ消費レベルを指定します。

Chrome DevTools プロトコル (CDP)

Chrome DevTools プロトコル (CDP) は、Chromium ベースのブラウザーをインストルメント、検査、デバッグ、プロファイリングするための API を提供します。 Chrome DevTools プロトコルは、Microsoft Edge DevTools の基盤です。 WebView2 プラットフォームに実装されていない機能には、Chrome DevTools プロトコルを使用します。

関連項目:

開く:

呼び出し:

受信者:

関連項目