玉树临风的机器人 · 西安美术学院代表团成功访问欧洲五所美术院校- ...· 6 月前 · |
文质彬彬的创口贴 · 生产环境Full ...· 6 月前 · |
没人理的路灯 · 黑哥哥舞蹈教练小说-西瓜视频· 7 月前 · |
开朗的花生 · 江湖神医 漫画 - 抖音· 1 年前 · |
鼻子大的墨镜 · 贾府败落后,卖巧姐的“狠舅奸兄”是谁? - 知乎· 1 年前 · |
在应用中嵌入 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 的发行说明 。
CoreWebView2Environment
(或等效接口的 、
CoreWebView2Controller
和
CoreWebView2
类) 协同工作,以便应用可以托管 WebView2 浏览器控件并访问其浏览器功能。 这三个大类公开了各种 API,主机应用可以访问这些 API,从而为用户提供许多与浏览器相关的功能类别。
CoreWebView2Environment
表示一组 WebView2 控件,这些控件共享相同的 WebView2 浏览器进程、用户数据文件夹和呈现器进程。 在此类
CoreWebView2Environment
中,将创建 和
CoreWebView2
实例对
CoreWebView2Controller
。
CoreWebView2Controller
负责与托管相关的功能,例如窗口焦点、可见性、大小和输入,应用在其中托管 WebView2 控件。
CoreWebView2
适用于 WebView2 控件的特定于 Web 的部分,包括网络、导航、脚本以及分析和呈现 HTML。
另请参阅:
Microsoft Edge WebView2 控件允许将 Web 内容嵌入本机应用程序。 可以使用简单消息、JavaScript 代码和本机对象在本机代码和 Web 代码之间进行通信。
一些常见用例包括:
另请参阅:
window.chrome.webview
中的 JavaScript API
下面是用于在 Web 和本机代码之间进行通信的main API。
WebView2 允许将本机代码中定义的对象传递给应用的 Web 端代码。 主机对象 是在本机代码中定义的任何对象,你选择传递给应用的 Web 端代码。
可以将主机对象投影到 JavaScript 中,以便你可以从应用的 Web 端代码 (或其他 API) 调用本机对象方法。 例如,应用可以通过应用 Web 端的用户交互调用此类 API。 这样,就无需在 Web 端代码中重新实现本机对象的 API,例如方法或属性。
.NET/C# WinRT/C# Win32/C++
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2Frame
类:
ICoreWebView2
接口:
ICoreWebView2Settings
接口:
ICoreWebView2Frame
接口:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2Frame
类:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2Frame
类:
ICoreWebView2
接口:
ICoreWebView2Settings
接口:
ICoreWebView2Frame2
接口:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2Frame
类:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2Frame
类:
ICoreWebView2
接口:
ICoreWebView2Settings
接口:
ICoreWebView2Frame2
接口:
ICoreWebView2
接口:
ReadOnly
ReadWrite
ReadOnly
ReadWrite
COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_ONLY
COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_WRITE
CoreWebView2Environment
类:
CoreWebView2Environment
类:
ICoreWebView2Environment6
接口:
CoreWebView2
类:
修改默认体验:
CoreWebView2
类:
CoreWebView2Profile
类:
自定义下载体验:
CoreWebView2
类:
CoreWebView2
类:
修改默认体验:
CoreWebView2
类:
CoreWebView2Profile
类:
自定义下载体验:
CoreWebView2
类:
ICoreWebView2_9
接口:
修改默认体验:
ICoreWebView2_9
接口:
ICoreWebView2Profile
接口:
自定义下载体验:
ICoreWebView2_4
接口:
CoreWebView2PermissionRequestedEventArgs
类:
CoreWebView2Profile
类:
CoreWebView2PermissionRequestedEventArgs
类:
CoreWebView2Profile
类:
ICoreWebView2
接口:
ICoreWebView2Frame3
接口:
ICoreWebView2PermissionRequestedEventArgs3
接口:
ICoreWebView2Profile4
接口:
CoreWebView2Environment
类:
CoreWebView2Settings
类:
CoreWebView2Environment
类:
CoreWebView2Settings
类:
ICoreWebView2_11
接口:
ICoreWebView2Environment9
接口:
ICoreWebView2Settings
接口:
ICoreWebView2_12
接口:
ICoreWebView2Settings
接口:
ICoreWebView2Settings4
接口:
CoreWebView2
类:
CoreWebView2
类:
ICoreWebView2_8
接口:
通过托管 WebView2 控件,你的应用可以在启用触摸输入的设备上启用或禁用轻扫手势导航。 此手势允许最终用户:
默认情况下,此功能在浏览器中处于禁用状态。 若要在 WebView2 中启用此功能,请设置
AdditionalBrowserArguments
属性并指定
--pull-to-refresh
开关。
ICoreWebView2Settings6
接口:
ICoreWebView2EnvironmentOptions
接口:
ICoreWebView2
接口:
属性
Language
设置 WebView2 的默认显示语言,该语言适用于浏览器 UI ((例如上下文菜单和) 对话框),同时设置
accept-language
WebView2 发送到网站的 HTTP 标头。
属性
ScriptLocale
允许主机应用为所有
Intl
JavaScript API 和依赖它的其他 JavaScript API 设置默认区域设置,例如
Intl.DateTimeFormat()
,这会影响时间/日期格式的字符串格式。
ICoreWebView2EnvironmentOptions
接口:
ICoreWebView2ControllerOptions2
接口:
ICoreWebView2
接口:
ICoreWebView2
接口:
ICoreWebView2Controller
接口:
ICoreWebView2
接口:
ICoreWebView2_15
接口:
CoreWebView2EnvironmentOptions
类:
CoreWebView2Profile
类:
Basic
Balanced
Strict
CoreWebView2EnvironmentOptions
类:
CoreWebView2Profile
类:
Basic
Balanced
Strict
ICoreWebView2EnvironmentOptions5
接口:
ICoreWebView2Profile3
接口:
COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_NONE
COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BASIC
COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BALANCED
COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_STRICT
Microsoft Defender SmartScreen (“SmartScreen”) 默认处于启用状态。 属性
IsReputationCheckingRequired
控制是否启用 SmartScreen。
如果不禁用 SmartScreen,则必须向所有用户发出通知,说明你的软件包括Microsoft Defender SmartScreen,并收集用户信息并将其发送给 Microsoft ,如 Microsoft 隐私声明 和 Microsoft Edge 隐私白皮书 中所述。
另请参阅:
如果任何 WebView2 进程崩溃,则会创建一个或多个小型转储文件并将其发送给 Microsoft 进行诊断。 运行诊断并执行分析时,使用此 API 自定义崩溃报告。
IsCustomCrashReportingEnabled
属性设置为
false
。
CrashDumpFolderPath
属性。
另请参阅:
CoreWebView2EnvironmentOptions
类:
CoreWebView2Environment
类:
CoreWebView2EnvironmentOptions
类:
CoreWebView2Environment
类:
ICoreWebView2EnvironmentOptions3
接口:
ICoreWebView2Environment11
接口:
CoreWebView2Environment
类:
CoreWebView2Environment
类:
ICoreWebView2
接口:
ICoreWebView2Environment8
接口:
ICoreWebView2Environment5
接口:
CoreWebView2
类:
CoreWebView2Settings
类:
CoreWebView2
类:
CoreWebView2Settings
类:
ICoreWebView2
接口:
ICoreWebView2_2
接口:
ICoreWebView2_3
接口:
ICoreWebView2Settings
接口:
CoreWebView2
类:
CoreWebView2Frame.NavigationStarting
CoreWebView2Frame
类:
CoreWebView2
类:
CoreWebView2Frame.NavigationStarting
CoreWebView2Frame
类:
ICoreWebView2
接口:
ICoreWebView2Frame.add_NavigationStarting
ICoreWebView2Frame.remove_NavigationStarting
ICoreWebView2Frame2
接口:
CoreWebView2Frame.NavigationCompleted
CoreWebView2Frame
类:
CoreWebView2Frame.NavigationCompleted
CoreWebView2Frame
类:
ICoreWebView2
接口:
ICoreWebView2Frame::add_NavigationCompleted
ICoreWebView2Frame::remove_NavigationCompleted
ICoreWebView2_2
接口:
ICoreWebView2Frame2
接口:
事件
WebResourceRequested
允许应用截获并覆盖 WebView2 中的所有网络请求。 事件
WebResourceResponseReceived
允许应用监视发送到的请求以及从网络收到的响应。
另请参阅:
CoreWebView2
类:
CoreWebView2
类:
ICoreWebView2
接口:
ICoreWebView2_2
接口:
ICoreWebView2EnvironmentOptions4
接口:
ICoreWebView2_5
接口:
ICoreWebView2_14
接口:
ICoreWebView2_4
接口:
ICoreWebView2_10
接口:
如果主机应用不使用 UI 框架,请使用这些 API 设置 WebView2 呈现系统。 此呈现设置控制 WebView2 如何将输出呈现到主机应用中,以及 WebView2 如何处理输入、焦点和辅助功能。
UI 框架 - 如果为应用使用 UI 框架,则应使用该 UI 框架提供的 WebView2 元素,而不是使用这些 API。
没有 UI 框架,也不使用合成
- 如果你没有为应用使用 UI 框架 (例如,如果你直接使用纯 Win32) ,或者如果你的 UI 框架没有 WebView2 元素,则需要在本部分中使用这些 API 创建
CoreWebView2Controller
并呈现到你的应用中。
没有 UI 框架,并且使用合成
- 如果你的应用 UI 是使用
DirectComposition
或
Windows.UI.Composition
生成的,则应使用
CoreWebView2CompositionController
而不是使用这些 API;请参阅下面的
使用合成呈现 WebView2
。
CoreWebView2Controller
类:
CoreWebView2Environment
类:
CoreWebView2Controller
类:
CoreWebView2Environment
类:
ICoreWebView2Controller
接口:
CoreWebView2Environment
类: