WebView2 的主类:环境、控制器和核心

CoreWebView2Environment (或等效接口的 、 CoreWebView2ControllerCoreWebView2 类) 协同工作,以便应用可以托管 WebView2 浏览器控件并访问其浏览器功能。 这三个大类公开了各种 API,主机应用可以访问这些 API,从而为用户提供许多与浏览器相关的功能类别。

  • CoreWebView2Environment 表示一组 WebView2 控件,这些控件共享相同的 WebView2 浏览器进程、用户数据文件夹和呈现器。 在此类CoreWebView2Environment中,将创建 和 CoreWebView2 实例对CoreWebView2Controller
  • CoreWebView2Controller 负责与托管相关的功能,例如窗口焦点、可见性、大小和输入,应用在其中托管 WebView2 控件。
  • CoreWebView2 适用于 WebView2 控件的特定于 Web 的部分,包括网络、导航、脚本以及分析和呈现 HTML。

跨平台 API 实现:大多数 WebView2 API 最初是为 C++ 开发的,然后大多数 C++ API 包装为 C# API。 这样,平台和编程语言之间就具有一致的并行度和等效性。

顶级类概述

概述:

  • CoreWebView2Environment
  • CoreWebView2
  • CoreWebView2Controller WebView2与 (UI 框架特定的 WebView2 元素类(如 WPF、WinForms 或 WinUI WebView2 类) )的类。

或者,等效:

  • ICoreWebView2Environment
  • ICoreWebView2
  • ICoreWebView2Controller

CoreWebView2Environment 表示一组 WebView2 控件,所有控件共享以下内容:

  • 它们共享相同的 WebView2 浏览器进程。
  • 它们共享相同的用户数据文件夹。
  • 它们可能会共享 WebView2 呈现器和其他 WebView2 进程。

在 中 CoreWebView2Environment,创建 CoreWebView2ControllerCoreWebView2 配对。 它们始终作为 CoreWebView2Controller 和相应的 CoreWebView2走到一起。

  • CoreWebView2Controller负责所有与托管相关的功能,例如焦点、可见性、大小和输入。
  • CoreWebView2用于 WebView2 控件的特定于 Web 的部分,包括网络、导航、脚本以及分析和呈现 HTML。

UI 框架特定的 WebView2 元素类,例如 WPF、WinForms 或 WinUI WebView2 类

如果使用特定于 UI 框架的 WebView2 元素类(如 WPF、WinForms 或 WinUI WebView2 类),则情况会有所不同。

然后,WebView2 类可以选择使用 CoreWebView2Environment ,否则它将创建默认 CoreWebView2Environment。 在内部,WebView2 类从 CoreWebView2Environment创建其 CoreWebView2ControllerCoreWebView2 。 将其公开为 属性,但 CoreWebView2Controller 对 类保持私有WebView2CoreWebView2CoreWebView2WebView2 这是因为 类 WebView2 负责将所有 CoreWebView2Controller 功能连接到 UI 框架。