webview安装了怎么运行,webview入门教程

首页 > 实用技巧 > 作者:YD1662023-07-08 23:03:08

8. 这些调试器对话框是一个已知 bug。 单击“ 确定” 按钮,然后单击“ 取消 ”按钮关闭对话框。

步骤 6 - 导航事件

在本部分中,将添加用于导入 WebView2 核心库的代码。

1. 在 中 MainWindow.xaml.cs,将以下行添加到顶部,在其他 using 语句的上方:

using Microsoft.Web.WebView2.Core;

托管 WebView2 控件的应用侦听 WebView2 控件在网页导航期间引发的以下事件:
· NavigationStarting
· SourceChanged
· ContentLoading
· HistoryChanged
· NavigationCompleted

如果发生 HTTP 重定向,则一行中有多个 NavigationStarting 事件。

有关详细信息,请参阅 WebView2 应用的导航事件。

发生错误时,将引发以下事件,并可能显示错误网页:

· SourceChanged

· ContentLoading

· HistoryChanged

作为如何使用事件的一个示例,请为 NavigationStarting 注册一个处理程序,以取消任何非 HTTPS 请求,如下所示:

2. 在 MainWindow.xaml.cs构造函数中,添加以下 NavigationStarting 行以注册 EnsureHttps 方法:

public MainWindow() { this.InitializeComponent(); MyWebView.NavigationStarting = EnsureHttps; }

3. 在 MainWindow.xaml.cs的构造函数下方,添加以下 EnsureHttps 方法:

private void EnsureHttps(WebView2 sender, CoreWebView2NavigationStartingEventArgs args) { String uri = args.Uri; if (!uri.StartsWith("https://")) { args.Cancel = true; } else { addressBar.Text = uri; } }

4. 选择“ 全部>文件保存 ” (Ctrl Shift S) 保存项目。

5. 按 F5 生成并运行项目。

6. 在应用中的“地址”栏中,输入 HTTP URL(例如 http://bing.com),然后单击“ 转到 ”按钮。

不会发生任何操作,因为 HTTP 站点的导航被阻止,并且我们尚未添加提供反馈的对话。

7. 输入 HTTPS URL(例如 https://bing.com),然后单击“ 转到 ”按钮。

应用导航到指定的页面,因为 HTTPS 网站允许导航。

8. 关闭应用。 可能会出现以下 Visual Studio 对话框:

webview安装了怎么运行,webview入门教程(9)

9. 这些调试器对话框是一个已知 bug。 单击“ 确定” 按钮,然后单击“ 取消 ”按钮关闭对话框。

WinRT CoreWebView2 对象可用性

WinRT CoreWebView2 对象在 WebView2 API 版本中可能不可用。 有关可用 API 的列表,请参阅:

· WinUI 3 API 参考 (Windows 应用 SDK) - Microsoft.UI.Xaml.Controls.WebView2 类 - Windows 桌面应用 > WinRT API 的 API 参考。

· WebView2 规范

步骤 7 - 脚本

可以使用主机应用在运行时将 JavaScript 代码注入 WebView2 控件。 可以任务 WebView2 运行任意 JavaScript 或添加初始化脚本。 注入的 JavaScript 将应用于所有新的顶级文档和任何子帧,直到删除 JavaScript。 注入的 JavaScript 以特定的计时运行,以便:

· 创建全局对象后运行注入的 JavaScript。

· 在运行 HTML 文档中包含的任何其他脚本之前,运行注入的 JavaScript。

例如,接下来,添加在用户尝试打开非 HTTPS 站点时发送警报的脚本。 为此,请将脚本注入到使用 ExecuteScriptAsync 的 Web 内容中。

1. EnsureHttps在 方法中,添加以下ExecuteScriptAsync行:

private void EnsureHttps(WebView2 sender, CoreWebView2NavigationStartingEventArgs args) { String uri = args.Uri; if (!uri.StartsWith("https://")) { MyWebView.ExecuteScriptAsync($"alert('{uri} is not safe, try an https link')"); args.Cancel = true; } else { addressBar.Text = uri; } }

2. 选择“ 全部>文件保存 ” (Ctrl Shift S) 保存项目。

3. 按 F5 生成并运行项目。

4. 在应用的“地址”栏中,输入非 HTTPS URL(例如 http://www.bing.com),然后单击“ 转到 ”按钮。

应用的 WebView2 控件显示非 HTTPS 网站的警报对话框,指出非 HTTPS uri 不安全:

5. 关闭应用。 可能会出现以下 Visual Studio 对话框:

6. 这些调试器对话框是一个已知 bug。 单击“ 确定” 按钮,然后单击“ 取消 ”按钮关闭对话框。

恭喜,你构建了第一个 WebView2 应用!

WinUI 3 WebView2 特殊注意事项

SmartScreen

WebView2 将应用程序中导航到的 URL 发送到 SmartScreen 服务,以确保客户保持安全。 如果要禁用此导航,可以通过环境变量执行此操作:

· Environment.SetEnvironmentVariable("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "--disable-features=msSmartScreenProtection");

必须在创建之前 CoreWebView2 设置此环境变量,这在最初设置 WebView2.Source 属性 或最初调用 WebView2.EnsureCoreWebView2Async 方法 时发生。

设置 DefaultBackgroundColor

在适用于 WinUI 3 的 WebView2 中 DefaultBackgroundColor ,设置存在于 WebView2 XAML 对象上。 例如:

public MainWindow() { this.InitializeComponent(); MyWebView.DefaultBackgroundColor = Colors.LightBlue; }

透明度

WinUI 3 不支持透明背景。 请参阅 WebView2 的透明后台支持? ·问题 #2992。

API 限制

WinUI 3 中无法访问以下类:

· CoreWebView2EnvironmentOptions

· CoreWebView2ControllerOptions

另请参阅

· WebView2 API 参考

· Microsoft Edge WebView2 简介 - 功能概述。

· 管理用户数据文件夹

· WebView2 的示例代码 - 存储库指南 WebView2Samples 。

· WebView2 应用开发最佳做法开发最佳做法

developer.microsoft.com:

· Microsoft Edge WebView2 - developer.microsoft.com WebView2 功能的初始简介。

GitHub:

· 在 WinUI3 中使用 WebView2 的入门

· 规范:WebView2 Xaml 控件 - WebView2 控件的 WinUI 3.0 版本。

· microsoft-ui-xaml 存储库 > 问题 - 输入特定于 WinUI 的功能请求或 bug。

,
上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.