在应用中嵌入 WebView2 控件可让你的应用访问通过 WebView2 类或接口提供的各种方法和属性。 WebView2 具有数百个 API,提供大量功能,从增强应用的本机平台功能到使应用能够修改浏览器体验。 本文提供 WebView2 API 的高级分组,以帮助你了解可以使用 WebView2 执行的不同操作。

托管 WebView2 控件时,你的应用有权访问以下功能和 API:

主类:Environment、Controller 和 Core CoreWebView2Environment (或等效接口的 、 CoreWebView2Controller CoreWebView2 类) 协同工作,以便应用可以托管 WebView2 浏览器控件并访问其浏览器功能。 这些大型类公开了各种 API,主机应用可以访问这些 API,以便为用户提供以下类别的浏览器相关功能。 Web/本机互操作 将 Web 内容嵌入本机应用程序。 使用简单消息、JavaScript 代码和本机对象在本机代码和 Web 代码之间进行通信。 浏览器功能 WebView2 控件允许应用访问许多浏览器功能。 可以修改这些浏览器功能并打开或关闭它们。 获取有关运行 WebView2 进程、退出进程和失败进程的信息,以便应用可以采取相应的操作。 导航到页面并管理加载的内容 管理网页导航并管理网页中加载的内容。 iframes 将其他网页嵌入你自己的网页。 检测何时创建嵌入网页,检测嵌入网页何时导航,并选择性地绕过 x 帧选项。 应用可以使用 WebView2 控件处理基本身份验证。 基本身份验证 是 HTTP 协议的一部分的特定身份验证方法。 在非框架应用中呈现 WebView2 如果主机应用不使用 UI 框架,请使用这些 API 设置 WebView2 呈现系统。 此呈现设置控制 WebView2 如何将输出呈现到主机应用中,以及 WebView2 如何处理输入、焦点和辅助功能。 使用合成呈现 WebView2 对于基于合成的 WebView2 呈现,请使用 CoreWebView2Environment 创建 CoreWebView2CompositionController CoreWebView2CompositionController 提供与 相同的 API CoreWebView2Controller ,但也包括用于基于合成的呈现的 API。 (UDF) (用户计算机上的文件夹)管理用户数据文件夹。 UDF 包含与主机应用和 WebView2 相关的数据。 WebView2 应用使用用户数据文件夹来存储浏览器数据,例如 Cookie、权限和缓存的资源。 在单个 UDF 下管理多个配置文件。 性能和调试 分析和调试性能,处理与性能相关的事件,并管理内存使用情况,以提高应用的响应能力。 Chrome DevTools 协议 (CDP) 检测、检查、调试和分析基于Chromium的浏览器。 Chrome DevTools 协议 (CDP) 是 Microsoft Edge DevTools 的基础。 将 Chrome DevTools 协议用于 WebView2 平台中未实现的功能。

此页仅列出发布 SDK 中的 API;它不会列出在发布 SDK 中尚不可用的实验 API 或稳定 API。 有关包括实验 API 在内的 API 的完整列表,请参阅 WebView2 SDK 的发行说明

主类:Environment、Controller 和 Core

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

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

  • WebView2 的主类:环境、控制器和核心
  • Web/本机互操作

    Microsoft Edge WebView2 控件允许将 Web 内容嵌入本机应用程序。 可以使用简单消息、JavaScript 代码和本机对象在本机代码和 Web 代码之间进行通信。

    一些常见用例包括:

  • 导航到其他网站后,更新本机主机窗口标题。
  • 从 Web 应用发送本机相机对象并使用其方法。
  • 在应用程序的 Web 端运行专用 JavaScript 文件。
  • 另请参阅:

  • 本机端和 Web 端代码的互操作
  • 从本机端代码调用 Web 端代码
  • 从 Web 端代码调用本机端代码
  • 从 Web 端代码调用本机 WinRT 代码
  • 适用于 JavaScript API 的 WebView2 window.chrome.webview 中的 JavaScript API
  • 下面是用于在 Web 和本机代码之间进行通信的main API。

    主机/Web 对象共享

    WebView2 允许将本机代码中定义的对象传递给应用的 Web 端代码。 主机对象 是在本机代码中定义的任何对象,你选择传递给应用的 Web 端代码。

    可以将主机对象投影到 JavaScript 中,以便你可以从应用的 Web 端代码 (或其他 API) 调用本机对象方法。 例如,应用可以通过应用 Web 端的用户交互调用此类 API。 这样,就无需在 Web 端代码中重新实现本机对象的 API,例如方法或属性。

    .NET/C# WinRT/C# Win32/C++
  • CoreWebView2 类:
  •