WebView2 の主なクラス: 環境、コントローラー、およびコア

CoreWebView2EnvironmentCoreWebView2Controller、および CoreWebView2 クラス (または同等のインターフェイス) が連携して、アプリが WebView2 ブラウザー コントロールをホストし、そのブラウザー機能にアクセスできるようにします。 これら 3 つの大規模なクラスでは、ホスト アプリがアクセスできるさまざまな API を公開し、ユーザーにブラウザー関連の機能の多くのカテゴリを提供します。

  • クラスは CoreWebView2Environment 、同じ WebView2 ブラウザー プロセス、ユーザー データ フォルダー、レンダラーを共有する WebView2 コントロールのグループを表します。 この CoreWebView2Environment クラスから、 と インスタンスの CoreWebView2Controller ペアを CoreWebView2 作成します。
  • クラスは CoreWebView2Controller 、ウィンドウ フォーカス、可視性、サイズ、入力などのホスティング関連の機能を担当します。ここで、アプリは WebView2 コントロールをホストします。
  • クラスは CoreWebView2 、ネットワーク、ナビゲーション、スクリプト、HTML の解析とレンダリングなど、WebView2 コントロールの Web 固有の部分用です。

クロスプラットフォーム API の実装: ほとんどの WebView2 API は、最初は C++ 用に開発され、その後、ほとんどの C++ API は C# API としてラップされます。 これにより、プラットフォームとプログラミング言語間で一貫した並列処理と等価性が得られます。

最上位クラスの概要

の概要:

  • CoreWebView2Environment
  • CoreWebView2
  • CoreWebView2Controller vs. WebView2 クラス (WPF、WinForms、WinUI WebView2 クラスなどの UI フレームワーク固有の WebView2 要素クラス)。

または、同等に:

  • ICoreWebView2Environment
  • ICoreWebView2
  • ICoreWebView2Controller

CoreWebView2Environment は、すべてのユーザーが以下を共有する WebView2 コントロールのグループを表します。

  • 同じ WebView2 ブラウザー プロセスを共有します。
  • 同じユーザー データ フォルダーを共有します。
  • WebView2 レンダラーやその他の WebView2 プロセスを共有する可能性があります。

から、CoreWebView2Environment作成とCoreWebView2ペアを作成CoreWebView2Controllerします。 それらは常に と 対応する CoreWebView2としてCoreWebView2Controller一緒に来ます。

  • CoreWebView2Controller 、フォーカス、可視性、サイズ、入力など、ホスティング関連のすべての機能を担当します。
  • CoreWebView2は、ネットワーク、ナビゲーション、スクリプト、HTML の解析とレンダリングなど、WebView2 コントロールの Web 固有の部分用です。

WPF、WinForms、WinUI WebView2 クラスなどの UI フレームワーク固有の WebView2 要素クラス

WPF、WinForms、WinUI WebView2 クラスなどの UI フレームワーク固有の WebView2 要素クラスを使用している場合は異なります。

その後、WebView2 クラスは必要に応じて を CoreWebView2Environment 使用し、それ以外の場合は既定の を作成します CoreWebView2Environment。 内部的には、WebView2 クラスによって、 から と CoreWebView2ControllerCoreWebView2 が作成されます CoreWebView2Environment。 はWebView2、 をCoreWebView2CoreWebView2プロパティとして公開しますがCoreWebView2Controller、 は クラスに対してプライベートにWebView2保持されます。 これは、クラスが WebView2 すべての機能を UI フレームワークに接続する役割を CoreWebView2Controller 担うためです。