WebView2 平台组件

若要将 WebView2 添加到应用,请在开发计算机上使用 WebView2 SDK,并将 WebView2 运行时分发到用户计算机。

详细内容:

开发人员计算机和用户计算机上的组件

若要将 WebView2 添加到应用,请在开发计算机上使用 WebView2 SDK,并将 WebView2 运行时分发到用户计算机。

顶级 WebView2 组件

简写术语 说明
应用 包含 WebView2 控件实例的任何框架或平台的任何应用。 应用可以具有使用 WebView2 控件实例的区域,也可以具有不使用该控件的其他区域。
SDK 版 WebView2 SDK。 当应用的一部分使用 WebView2 时,该代码可以结合 WebView2 控件的实例调用这些 API。 发布 SDK 交付给用户,并且仅包含稳定的 API。 预发布 SDK 仅由开发人员使用,并包含一些试验性 API。
Control WebView2 控件的实例。 在应用中,通常显示为矩形区域,而不是包含 Web 内容。
运行时 WebView2 运行时,这是一个浏览器引擎。 安装在用户计算机以及开发和测试计算机上。
预览频道 Microsoft Edge 的预览频道,Beta 版 (几乎稳定的) 、Dev 或 Canary (最新版本;每日) 。 仅适用于开发和测试计算机,不适用于用户计算机。

WebView2 控件、SDK 和运行时

WebView2 控件、WebView2 SDK 和 WebView2 运行时具有以下角色:

组件 Role
WebView2 SDK 为开发人员提供要在应用代码中使用的 API。 在编写应用编码时由开发人员在本地使用。 两个版本:用于本地开发测试的预发布 SDK 和用于为用户开发可交付代码的发布 SDK。
WebView2 控件 在应用中嵌入 WebView2 控件。 托管运行时;用作显示 Web 内容的可见区域。
WebView2 运行时 在开发人员的测试计算机和用户计算机上。 或者,在使用预发布 SDK 时,开发人员可以使用 Microsoft Edge 的预览频道进行本地测试,而不是使用运行时。

高级 WebView2 组件的关系图

下图显示了开发计算机和用户计算机上的高级 WebView2 组件:

开发计算机和用户计算机上的应用

开发计算机

本节介绍上图的左列。

用于开发 WebView2 应用的开发计算机由以下组件组成:

  • Visual Studio 项目 - 使用 Visual Studio 项目模板创建标准平台应用,然后将 WebView2 SDK 作为 NuGet 包添加到项目中。

    • 布局设计器 - 在 Visual Studio 中布置控件。

      • WebView2 控件实例 - 应用的 Web 内容区域。 应用的 Web 端代码在此控件中运行。

      • 本机控件实例 - 应用的本机控件和窗格。

    • WebView2 SDK。

      • 每个平台的 WebView2 API,包括 CoreWebView2、 CoreWebView2Controller和 CoreWebView2Environment。 主要由本机代码调用。

      • AddHostObjectToScript - 允许向 JavaScript 代码公开平台 API 和 WebView2 API。 查看 本机代码和 Web 代码的互操作

      • JavaScript API (WebView2Script 包) - 由 Web 端代码调用,用于与主机应用程序通信。

    • 平台 API - Web 平台提供的非 WebView2 API;由 Web 端代码使用。

  • WebView2 运行时 - 包含 WebView2 API 并运行 Web 端代码的 Microsoft Edge 浏览器组件。

用户计算机

本节介绍上图的右侧列。

在最终用户计算机上,有运行 WebView2 应用时所涉及的以下组件:

  • 用户已安装并正在使用的主机应用。

    • WebView2 本机代码:使用 WebView2 API 的本机代码。

    • Web 代码:在 WebView2 控件实例中运行的 Web 端代码。

    • WebView2 控件实例:WebView2 应用的 Web 端代码在 WebView2 控件中运行。

    • 非 WebView2 本机代码。

    • 非 WebView2 Web 代码。

    • 本机控制实例。

  • WebView2 运行时。

具有预览运行时的预发布 SDK 或具有稳定运行时的发布 SDK

可使用以下任一组合:

  • WebView2 预发布 SDK 以及 Microsoft Edge (Beta、Dev 或 Canary) 的预览频道,其中包括 WebView2 预览运行时。
  • WebView2 发布 SDK 以及 WebView2 运行时。
WebView2 SDK 的类型 呈现器平台 应用场景
预发布 SDK WebView2 预览运行时,包含在 Microsoft Edge (Beta、Dev 或 Canary) 的预览频道中 若要针对即将发生的更改试验和测试应用,请在开发计算机上进行。
发布 SDK WebView2 稳定运行时 将应用交付给最终用户。

WebView2 控件、运行时和 SDK

此图显示了以下轮廓:

WebView2 预发布 SDK:

  • .NET/C# API,包括实验性 API。
  • WinRT/C# API,包括实验性 API。
  • Win32/C++ API,包括实验性 API。
  • JavaScript API (WebView2Script 包) 。

预发布 SDK 使用 Microsoft Edge 的预览频道,其中包括:

  • WebView2 预览运行时。
  • JavaScript API (WebView2Script 包) 。

WebView2 发布 SDK:

  • .NET/C# API。
  • WinRT/C#。
  • Win32/C++。
  • JavaScript API (WebView2Script 包) 。

发布 SDK 使用 WebView2 运行时 (WebView2 稳定运行时) 。

  • 运行时包含 WebView2Script 包 (JavaScript API) 。

你定期从 NuGet 下载最新的 SDK。 NuGet 链接位于 WebView2 SDK 的发行说明中。

SDK 包括包含在包中的 WebView2Script JavaScript API。

另请参阅:

将预发布 SDK 和试验性 API 与 Microsoft Edge 预览频道配合使用

要使用试验性 API 开发应用的预发行版本,或针对即将进行的 SDK 更改测试应用,请执行以下操作:

  • 在开发计算机上的 Visual Studio 项目中,安装预 发行 版本的 Microsoft.Web.WebView2 SDK NuGet 程序包。 编写使用 实验性 API (和稳定 API) 的代码。
  • 在开发计算机上,安装并使用 Microsoft Edge 的预览渠道。

要将预发布应用分发到测试计算机,请执行以下操作:

  • 在测试计算机上,安装 Microsoft Edge 预览频道。

另请参阅:

将发布 SDK 和稳定 API 与运行时配合使用

要开发应用的发行版本:

  • 在开发计算机上的 Visual Studio 项目中,安装 SDK NuGet 包的Microsoft.Web.WebView2发行版。 编写仅使用 稳定 API 的代码。
  • 在开发计算机上,使用 WebView2 运行时 (SDK 包) 的一部分。

WebView2 运行时类似于浏览器引擎,可用作应用中的组件。

可通过多种方式将应用和运行时分发给用户。 请参阅上面的用户 计算机上分发、安装和更新运行时的方法 。

另请参阅:

WebView2 应用的设计体系结构

主机应用包含以下类别的组件:

  • 本机控制实例。
  • WebView2 控件实例。

主机应用还包含以下类别的代码:

  • 本机代码,调用本机平台 API。
  • 调用 WebView2 API 的本机代码。
  • Web 代码 (JavaScript) ,调用 WebView2Script API、公开的本机 API 和 Web 平台 API。

WebView2 应用的设计体系结构

在用户计算机上分发、安装和更新运行时的方法

有几种方法可以将 WebView2 运行时与应用一起分发:

分发 WebView2 运行时的方法

分发方法名称 说明 注释
链接到 Evergreen 运行时引导程序 在应用的安装程序中,链接到 Evergreen Runtime 引导程序。 让你的应用的安装程序使用此链接以编程方式下载 Evergreen 引导程序并将其安装到用户的计算机上。 然后调用引导程序,为用户的设备安装适当的运行时。 对于具有在线连接的用户。 Evergreen 引导程序是一个小型安装程序,可使用 Internet 连接为用户的 CPU 安装正确的运行时。
打包 Evergreen 运行时引导程序 将 Evergreen 引导程序下载到开发计算机。 使用应用安装程序打包和分发 Evergreen 引导程序。 然后,应用安装程序调用引导程序,在用户的计算机上安装运行时。 对于与引导程序 CDN 站点没有可靠连接的用户。
打包 Evergreen Runtime 独立安装程序 将 Evergreen 独立安装程序下载到开发计算机,并将其与应用一起打包。 将 Evergreen 独立安装程序与应用的安装程序打包。 然后,应用的安装程序调用 Evergreen 独立安装程序,在用户的设备上安装运行时。 适用于离线用户。 一个适用于离线用户的大型独立 Evergreen Runtime 安装程序,其中包括 Evergreen Runtime。
打包固定版本运行时 将特定于版本、特定于 CPU 的运行时下载到开发计算机。 使用应用的安装程序打包和分发固定版本运行时。 应用的安装程序在用户的计算机上安装特定的固定版本运行时。 特殊情况,适用于需要特定版本的 API 的情况;避免测试最新的 API 是否可用。

上述方法按与 Microsoft Edge WebView2 页面的“下载 WebView2 运行时”部分中相同的顺序列出,从轻型方法到重型方法。 偏爱轻量级方法;如果特殊方案需要,请使用重量级方法。

应用的安装程序 是指应用的安装程序/更新程序,可以独立于应用,也可以是应用的一部分。

另请参阅:

与 HTTP 服务器通信

WebView2 控件充当主机应用与 HTTP 服务器之间通信的中介。

主机应用、WebView2 控件和 HTTP 服务器

另请参阅

developer.microsoft.com:

WebView2 应用开发资源: