当前位置:首页 > 实用技巧 >

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

来源:原点资讯(www.yd166.com)时间:2023-07-08 23:03:08作者:YD166手机阅读>>

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。

,

栏目热文

webview安装不上

webview安装不上

创作立场声明:并不是所有的用户都会出现本文中的问题,我只是告诉和我一样出现这个问题的值友们的解决方法,让你们少走弯路!可...

2023-07-08 23:35:46查看全文 >>

怎么知道webview安装是否成功

怎么知道webview安装是否成功

WebView2控件应用详解系列博客  客户端程序(WinForm、WPF、Win32、WinUI)集成WebView控...

2023-07-08 23:15:46查看全文 >>

webview初始化失败是什么意思(webview开好还是不开好)

webview初始化失败是什么意思(webview开好还是不开好)

上次说为了不想在web端登录博客园,我想着还是继续使用MarkWord编写博客,不过在使用的过程中,如果Markdown...

2023-07-08 23:30:54查看全文 >>

webview中点击不了(webview打不开带参数的链接)

webview中点击不了(webview打不开带参数的链接)

作者:子非转发链接:https://juejin.im/post/5ce76ee4f265da1b8d15f700前言我...

2023-07-08 23:22:28查看全文 >>

webview安装失败怎么弄(webview安装失败 -22)

webview安装失败怎么弄(webview安装失败 -22)

为什么要学习Android与H5互调?微信,QQ空间等大量软件都内嵌了H5,不得不说是一种趋势。Android与H5互调...

2023-07-08 23:10:12查看全文 >>

webview怎么找(webview地址怎么设置)

webview怎么找(webview地址怎么设置)

默认我们用Android SDK下包含的UiautomatorViewer.bat 工具查看app页面控件时只能查看原生...

2023-07-08 23:02:55查看全文 >>

webview不兼容怎么办

webview不兼容怎么办

WebView2控件应用详解系列博客 长青版WebView2运行时将作为Windows 11操作系统的一部分包含在内。但...

2023-07-08 23:03:55查看全文 >>

webview打开方式(多进程webview打开好吗)

webview打开方式(多进程webview打开好吗)

开发小程序绕不开 webview,什么是 webview?有什么作用呢?一、什么是 webviewWebView 也叫网...

2023-07-08 23:33:41查看全文 >>

webview无法更新(webview安装不了)

webview无法更新(webview安装不了)

作为一个博客站长,手机上的浏览需求是一定会有的,最起码的博客网站的调试必须要有“手机端”这个环节的,所以手机端的浏览器大...

2023-07-08 23:19:37查看全文 >>

webview回调怎么解决

webview回调怎么解决

一 背景熟悉 iOS\macOS Hybrid 混合开发的同学应该都有体会,WKWebView 虽然是苹果作为替代 UI...

2023-07-08 23:27:56查看全文 >>

文档排行