C# 使用 Edge Web.WebView2

WinForms 应用程式中使用 WebView2。可嵌入应用程序的浏览器控件 Windows 应用 SDK WebView2 公共 WebView2 可在 Windows 应用 SDK 中使用 EdgeWinUI 合作,将 WebView2 控件反向移植到 WinUI2 中。Windows UI 程式库 (WinUI) 2Windows SDK 整合并使用 XAML Islands() 为 UWP 应用程式提供官方原生 Windows UI 控制项和其他使用者介面元素。

C# ASP.NET 应用 WebView2 程式

Visual Studio C# ASP.NET 的应用,替换应用程式 WebBrowser 改用 Microsoft Edge WebView2WinForms 应用程式中内嵌 Microsoft Edge (Chromium) 平台 Web 内容。永久启动载入器,根据预设 WebView2 会「永久」并接收自动更新,以保持最新状态且最安全的平台。这个「永久」看以后的网路变化吧。Internet Explorer 浏览器彻底淘汰日期在 2022/06/15 不再支援 IE 11 浏览器传统型应用程式,并推荐移转至 Microsoft Edge。原本于本机作业的 WebBrowser 亦可使用新的网路技术。

WebView2 Microsoft Edge

可以用于开发 Windows 桌面应用程序、新版的 Microsoft Edge 浏览器採用与 Google Chrome 同样的 Chromium 核心,将 Web 技术 HTML、JavaScript、CSS 本机应用中,因此可以提供更好的网页相容度,同时也提供久违的 macOS 版本。Chromium 核心自 2006 年即开始 Google 为发展 Google Chrome 浏览器而释出的免费开源软体专案,为了创建安全、稳定和快速的通用浏览器,以 BSD 授权条款等数种授权发行并开放原始码。Chromium, Google Chrome 共享浏览器大部分程式码和 JavaScriptECMAScript, ES6 语法支持功能。

Edge 在官方 Microsoft 安装更新新版 Chromium 核心 Edge 的预设浏览器。通过设定可以调整,决定自己保护自己隐私安全的程度及设定预定搜寻引擎、以及扩充功能,在必威体育手机客户端考量时、应该就渐近的摆脱以前相容性的约束。



首先下载 WebView2 执行阶段

Microsoft Edge WebView2 RuntimeWebView2 控件可以在由 Microsoft Edge (Chromium) 提供支持的本机应用程序中嵌入当前 Web 技术 HTML, CSS, ECMAScript, JavaScript 少了这个 Visual Studio 2017 就没有办法显示指定的 Source 网址内容。

https://developer.microsoft.com/zh-TW/microsoft-edge/webview2/

MicrosoftEdgeWebview2Setup.exe



Visual Studio 编辑、建置及侦错程式码

Microsoft Edge WebView2 基于微软新版本的 Chromium 核心 Edge 浏览器的一部分不断进行诸多最佳化。该浏览器控制项首次预装在 Windows 10 版本 20H2 中。原本于本机作业的 C# Windows Forms 更新。
Visual Studio 选单中的 Tools 工具(T)、NuGet 封装管理员、管理方案的 NuGet 套件。

Microsoft.Web.WebView2

设置开发工具并为 WinForms 平台创建初始化 WebView2 应用程序。元件开发应用,需要安装 Microsoft Visual Studio 版本 Visual Studio 2017 或更高版本例如 Visual Studio 2022 Professional。



更改 WebView2 控件的 source 属性操作

using System.Windows.Forms;

Visual Studio 开发工具套件 .NET API 浏览器控制项,于 CoreWebView2 核心物件初始化完成后显示当前指定的 source 网址内容,获取该属性相当于获取 Source 属性,设置属性 Navigate(String) 方法。

this.WebView2.Source = new System.Uri("https://www.microsoft.com", System.UriKind.Absolute);

Uri 取得关于目前请求的 URL 资讯,提供统一资源识别元 URI 的物件表示,以及对 URI 各部分的简易存取。

步骤参考 WinForms 应用程式中开始使用 WebView2

WebView2 支援 Microsoft Edge 的浏览器控制项可以嵌入 Microsoft Visual Studio 应用程式中在应用程式中显示网页内容,并提供与当前浏览器相同的功能和体验。让应用程序可以支援新世代的浏览器方案,例如 ECMA-262 等新的语法。
Get started with WebView2 in WinForms apps

webView01.CoreWebView2.Navigate("https://www.example.com");

https://docs.microsoft.com/en-us/microsoft-edge/webview2/get-started/winforms

浏览程式建议 WebView2 Font Size 字体看起来比较大,WebView2.ZoomFactor Property 画面缩放率可以于属性项目中的 WebView2 > ZoomFactor 缩放系数设置例如 0.9 缩小一些符合原本的 webbrowser 使用于显示的尺寸比例问题。


Visual Studio 开发工具套件 WebView2 / EBWebView 暂存档。因为使用 Chromium 的浏览器控制项,EBWebView 使用 WebView2 运行时通过 WebView2 环境来设定。暂存档是 WebView2 应用程式使用的用户数据资料夹用于存储浏览器数据如 Cookie 权限和缓存的资源。暂存档可以通过 WebView2 环境的第二个参数来指定,可使用多配置文件支持来在「单个用户」Single User 数据文件夹下创建多个配置文件,但需要一段时间清除暂存的内容。

WebView2 应用程式 EBWebView 暂存档资料夹 AutoLaunchProtocolsComponent, BrowserMetrics, CertificateRevocation, Crashpad, GraphiteDawnCache, GrShaderCache, OriginTrials, ShaderCache, SmartScreen, Speech Recognition, Subresource Filter, TpcdMetadata, Trust Protection Lists, TrustTokenKeyCommitments, WidevineCdm...


ChromiumGoogle Chrome 共享大部分程式码

如果有新的发布版本可能会有些改变,可能涉及新的功能、修復和性能优化。基于 Chromium 内核编译的浏览器、并且着重于保护浏览器隐私项目 Microsoft Edge 封装、在 C# 中使用 Edge Web.WebView2,需要确定电脑上已安装 Microsoft Edge 版本 80 或更高版本、而且在 Visual Studio 工具箱中使用 NuGet 管理器安装 Microsoft.Edge.WebView2 NuGet 。



Microsoft Edge Chromium

Class 经典版 Edge 正式退役后,Microsoft 微软将会把大部分中心都放在新版 Edge Chromium 提供支持当前 Web 技术。

未知 Internet Explorer 浏览器淘汰后,如果应用于本机的程式会如何,WebBrowser 改变为 WebView2 例如 document.execCommand("cut") 安全考量,以及细微版面变化,但仍然是应该随时代进步来跟随。


JavaScript 读取本机电脑的字型

在 HTML 中显示字型清单、改用 WebView2 则 classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" 受到安全性限制,无法使用直接来检测和处理本地字型这是为了保护使用者的隐私和安全、及画面缩放系数需要调整。

document.fonts.values();

遍歷所有字型,读取本机电脑字型将字型名称加入清单。



註册表修改 webbrowser 指定内核为 IE11

但个项目已经不太需要,进入 Windows 11 使用 Visual Studio 载入旧档案 webbrowser 已经出现许多错误。

电脑\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

11001(0x2AF9) - Internet Explorer11。无论!DOCTYPE 指令如何,网页均以 IE11 edge mode 显示。
11000(0x2AF8) - Internet Explorer11。包含基于标准!DOCTYPE 指令的网页以 IE11 edge mode 显示。IE11 的默认值。

修正的结果仍然不支持当前 Web 技术 HTML、CSS、JavaScript 建议使用 WebView2 更换,应用程序亦能升级。