栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.Net桌面端开发使用WebView2,可以放弃CefSharp?

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.Net桌面端开发使用WebView2,可以放弃CefSharp?

前言

已更新后续:WebView2 使用及现状

最近研究.net Core的时候,发现微软终于放弃IE内核,拥抱Chrome了,这也算是微软对开源的决心越来越大吧。作为桌面端程序开发人员,不管是使用Winform还是WPF,如果想在界面上加载HTMl代码,使用自带的WebBrowser会发现是灾难性的事件,WebBrowser万年不变的IE7内核让不管多绚丽多彩的HTMl暗然失色,于是开始寻找替代方案,而CefSharp就是不二之选,CefSharp使用的是CEF开源框架,CEF 是一个基于google chromiun的简单的框架。

CefSharp: https://github.com/cefsharp/CefSharp/.

CefSharp提供Winform、WPF、OffScreen的NuGet获取下载,使用也很简单,只需要简单的配置一下即可享受Chrome浏览器的体验,之前写过一个 CefSharp 使用心得.

一、WebView2是什么?

Microsoft Edge WebView2 控件使你能够在本机应用程序中嵌入 web 技术 (HTML、CSS 和 JavaScript ) 。 WebView2 控件使用 Microsoft Edge () Chromium 作为呈现引擎在本机应用程序中显示 web 内容。 使用 WebView2,你可以将 web 代码嵌入本机应用程序的不同部分,或在单个 Web 视图中构建整个本机应用程序。
这是Micosoft官方文档的说明,其实就是跟之前的WebBrowser一样,也是基于本地的浏览器内核引擎来渲染网页的,只不过这次使用的是Edge的Chromium内核。所以要使用WebView2就必然需要本地安装了Microsoft Edge Chromium版本链接: https://www.microsoftedgeinsider.com/zh-cn/.。

二、使用步骤 1.必备条件

请确保在继续之前安装了以下先决条件列表:

Microsoft Edge (Chromium 在 windows 10、windows 8.1 或 windows 7 上安装了) 的未放大频道。
Visual Studio 2017 或更高版本。

2.引入库

直接Nuget:(请注意必须使用预发行版本,稳定版本还不能使用)

直接在XAML里引入库

xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"


此时会发现,程序并未F5运行,但设计窗口直接加载了百度的页面,说明直接使用Edge渲染了网页。这个对开发人员来说真是舒服呀。

经过测试发现:WebView2支持H264的视频解码,要知道CefSharp可是需要自己手工重编译CEF才行的呀。

在后台可通过调用 CoreWebView2Environment.GetAvailableBrowserVersionString() 来获取当前的浏览器内核版本

string coreWebView2Environment = CoreWebView2Environment.GetAvailableBrowserVersionString();

页面的跳转通过Navigate:

private void btnGo_Click(object sender, RoutedEventArgs e)
        {
            if (webView != null && webView.CoreWebView2 != null)
            {
                webView.CoreWebView2.Navigate(tbUrl.Text);
            }
        }
 这里需要说明的是:必须对CoreWebView2进行初始化,看一下微软官方的解释是因为创建 CoreWebView2 是一个昂贵的操作,它涉及启动 Edge 浏览器进程之类的操作。

 有两种方法可导致创建 CoreWebView2:
 1)调用 EnsureCoreWebView2Async 方法。 这称为显式初始化。 
 2)设置 Source 属性(例如,可以通过标记执行此操作)。 这称为隐式初始化。
总结

WebView2未来应该是要替代WebBrowser的,虽然需要依赖本机自带的Edge chromium内核,但相信未来的windows 更新肯定会以Edge chromium内核代替IE内核,并且不需要重新下载Chrome浏览器,使用Edge也会有一样的浏览体验。而作为桌面开发人员来说,使用WebView2直接加载网页会比使用CefSharp来得更舒服,不再需要引入一堆的CEF类库,同时安装文件也会缩小很多。

已更新后续:WebView2 使用及现状

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号