webview2(webview2 runtime是啥)
本文目录
- webview2 runtime是啥
- webview2runtime
- 跨平台桌面开发,Electron还是WebView2 (中篇)
- .NET 6上的WebView2体验
- microsoft edge webview2 runtime怎么设置青少年模式
- webview2runtime下载失败
- microsoft edge webview2 runtime是什么
- C#webview2是否加载完成
- microsoft edge webview2runtime有什么作用
- webview2runtime有广告吗
webview2 runtime是啥
WebView2 runtime是一个可再发行的内存管理,用作 WebView2 应用程序的基础(或支持)Web平台。该概念类似于 Visual C++ 或用于 C++/.NET 应用的 .NET内存管理。WebView2 运行时包含经过修改的 Microsoft Edge 二进制文件,这些二进制文件针对 WebView2 应用进行了微调和测试。
安装 WebView2 运行时后,它不会显示为用户可见的浏览器应用。例如,用户在“开始“菜单中没有浏览器桌面快捷方式或条目。
WebView2 runtime优缺点:
1、优点:底层 Web 平台(WebView2 运行时)会自动更新,而无需付出更多努力。客户端系统上的 WebView2 运行时所需的磁盘空间较少,因为 WebView2 运行时由客户端上的所有 WebView2 应用程序共享。
在符合条件的系统上,Microsoft Edge 和 Evergreen WebView2 的二进制文件在位于同一版本时会硬链接在一起。此链接为磁盘占用空间、内存和性能提供了好处。
2、缺点:WebView2 应用程序无法指定,需要特定版本的 WebView2 runtime。
webview2runtime
webview2runtime是微软最新的浏览器。webview2是网络视图2的意思。WebView2控件使用微软的Edge作为渲染引擎,你可以嵌入一部分或者整个App都用WebView来做。runtime是运行时刻。是指一个程序在运行(或者在被执行)的状态。也就是说,当打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻。
跨平台桌面开发,Electron还是WebView2 (中篇)
这一周继续聊跨平台桌面开发这个事情。
在这篇文章中,我暂时会放下Electron与WebView2的一个对比,而聊一聊跨平台这个对于程序员群体来说不陌生的词。
一个趋势是:跨平台开发几乎是在各个技术方向都会持续发展的
跨平台这个词,对于程序员来说,应该是不陌生的。因为这个概念不只在某一端存在,后端,前端,移动端,桌面端几乎所有方向都对跨平台有需求。
在后端,Java是跨平台的,当你用Java来编写后端服务时,并不需要考虑操作系统,因为它几乎支持主流的操作系统。现在,编写一个后端服务,选用Java仍是主流。虽然可能它的跨平台特性已经不是程序员最在意的点了。
而在移动端,类似React Native,Flutter也是非常有名的跨平台移动开发,它们与移动原生开发方式之间一直是竞争与共存。
而前端因为依托于浏览器,天然就是跨平台的。事实上,很多应用或服务早期纷纷选择从原生应用迁移至前端WEB方式的一个非常重要的原因就在于它是跨平台的。
桌面操作系统很长一段时间一直是Windows一家独大,所以桌面开发一直是Windows独占,直至现在为止,很多专业级的软件仍然是Windows独占的。
而Linux桌面操作系统与MacOS桌面操作系统,早些年几乎可以忽略不计,压根不需要考虑这两种系统。但随着近些年它们的慢慢流行,特别是苹果的MacOS的以其杰出的工艺,流畅的体验,叠加苹果手机的流行,其市场份额增长非常之快,在特定的诸如编程,设计等行业人群中使用范围较广,这使得开发支持MacOS系统这个点变得越来越重要。
所以,在桌面开发领域,跨平台的需求也越来越高。
这也是Electron及早期的NW.js能迅速发展起来并得到非常广应用的原因所在。
无论是哪一端,跨平台技术之所以频繁出现与不断发展,其根本原因就在于编程的一个重要痛点在于:
为了让同一个服务能在所有设备上运行,程序员不得不编写与维护非常多不同版本的程序
每一个程序或软件后面的服务,都有一个非常迫切的需求,就是期望它的用户无论何时,无论何地,无论使用任何设备,都能方便友好的使用这个服务。
也是因为这个原因,Web发展起来了,因为Web的优势就在这,只要你的设备上有浏览器,就能访问。
但Web毕竟性能有限,且浏览器这种形式并不利于用户忠诚度的培养,它存在天然的弱点。一些简单的操作服务使用Web并无问题,但稍微有点要求的,Web可能就并不是非常适合。
所以,一种趋势不可避免地流行起来:
对不同设备或系统进行抽象,基于某一种特定的编程语言,编写出能与原生程序相媲美的,又能跨平台的技术便层出不穷了
对吧,Java是使用JVM来抽象不同的操作系统,React Native则是使用虚拟DOM以及转换成原生控件的方式来实现跨平台,而Electron则是通过性能较好的Chrome内核+NodeJS原生调用能力的搭配来实现跨平台桌面开发。
总而言之,这种跨平台的技术不会消亡,只会有新的技术层出不穷,而它们与原生开发一定是相互竞争,配合与共存的。相互之间无法取代。
那再回到跨平台技术上来说,一个良好的跨平台开发的技术或框架,重点是什么。
或者换种方式说,哪些特性使得它更易于流行起来?
我个人认为有以下的几个点:
跨平台开发技术能不能流行起来的一个非常重要的点就在于,使用了什么样的编程语言。
以移动端跨平台开发技术来说明,一个React Native,一个Flutter,这两个是比较知名主流的跨平台移动开发技术。React Native使用的是前端React技术,而Flutter则是Google的D语言。
显而易见的是,虽然Flutter是使用skia引擎在底层重绘一套UI,其性能相比React Native这种模式更佳,但React Native更易于被接受。
在流行度上,React Native始终比Flutter更流行,一个最重要的原因也在于:
使用已熟知的前端编程语言,比起重新学习一个D语言更易于被接受,维护成本更可控。
这个问题在跨平台桌面开发中也是类似,跨平台桌面开发技术也不是Electron最开始出现,比如著名的QT很早就有了,但比起Electron这种使用前端编程技术来说,显然在编程语言的门槛上和程序员群体上都存在困难,这也是Electron能后来居上的原因所在。
因为,大多数程序员群体,相比较另外学习一门什么语言去做什么,使用自己熟悉的语言来做什么是更容易,意愿也更高。
而从公司或团队的考量上看,选择偏门的小众语言存在成本上的顾虑,比如人员招聘是否容易?
跨平台技术在尝试解决不同平台不一致,它或多或少会损耗性能。这也决定了几乎没有任何一个跨平台技术能取代原生开发。
这是一个取舍的问题,对于一个程序来说,究竟性能有多重要。对于比较看重性能的程序来说,原生开发可能是最优选择。
但跨平台的性能损耗也有高低之分,并不在同一水平线上。
其实,无论是Electron,或是WebView2,都是基于浏览器内核+前端技术的跨平台桌面解决方案,这也是为什么要把它们放在一起聊的原因。
Electron是先行者(当然,严格说来,NW.js出现的更早,但今天它的流行度已远远落后于Electron了),而WebView2则是后来者。
那做为后来者的WebView2究竟做了哪些改进?它又有多大的能力来挑战Electron呢?
下一篇,继续聊。
.NET 6上的WebView2体验
上次说为了不想在web端登录博客园,我想着还是继续使用 MarkWord 编写博客,不过在使用的过程中,如果markdown文件的目录中有中文的话,Markdown预览就不能够显示粘贴的图片了,原因是之前.NET Framework的WeBrowser库太老了,应该升级一下。
替换WebBrowser的方案很多,在Stackoverflow上有人推荐使用WebView2,我就直接用了,也没有多想,实际上使用的问题还是不少的,简单记录一下。
这个东西是微软推出基于Edge或者说是基于chromium内核的浏览器组件,可以提供现代的浏览器体验,用于集成到.NET程序中,实现.NET对web的访问与调用,或者反过来也行。这个东西感觉是CefSharp的有利竞争者呀,虽然我也没咋用过CefSharp。
迁移的第一步是引用的替换,WebBrowser在System.Windows.Forms.WebBrowser命名空间,如果使用WPF的话,需要使用WindowsFormsHost,这个就体验不是那么好了,WPF下,有Microsoft.Web.WebView2.Wpf,可以提供给WPF原生的访问,赞一个。
然后就是出现的错误了,最难受的是,WebView2 不提供对DOM的访问权限! ,WebBrowser可以直接通过Document来访问DOM节点,而WebView2只能设置访问的Uri信息,然后控制导航与调用js。
为了实现动态的控制预览框的内容,访问DOM是必须的,如果我动态的渲染一个文件,然后随时再构造Uri,再传递到WebView2中,那太啰嗦了。由于这个东西可以直接调用JS,那么我们换一个思路:通过WebView2调用JS,然后使用Js操作DOM,曲线实现控制DOM的目标。废话不多说,直接上代码。
WebView2除了直接在传递js的函数体以外,还可以调用页面中的顶级JS函数,具体使用方法参见后面的参考文献或者园子里面的这篇文章,反正我这么使用之后中文目录的问题就解决了,不过右侧渲染如果有回车换行的话,就经常会卡死,好像是引擎就崩溃了。
经过debug,发现WebView2在运行的过程中,需要渲染的html内,标签之间不能有r 之类的东西,如果有就寄了。而使用CommonMark.CommonMarkConverter.Convert方法转换的markdown文件都会有这个东西...
这个库时间也比较久远了,经过简单研究,我换成了Markdig这个库,二者兼容,而且Markdig还提供了更多定制的地方,我这里将所有的换行,替换为空字符。
这样,换行就没啥问题了,但是在初次使用时,会出现WebView2无法正常渲染的问题。
WebView2的初始化和其他的库有点不同,它提供了一个EnsureCoreWebView2Async的方法,对它的操作,请一定等这个方法返回。可以使用await,也可以和我一样,使用TPL。
注意我这里使用加载了一个本地的模板HTML文件,访问本地文件的时候,需要使用Uri的方式访问。
经过了一番折腾,终于是能够继续使用MarkWord写博客了,虽然我更换了主题之后,滚动不是很利索了,另外渲染代码换行好像还有点问题,不过好歹能用了,以后再折腾吧。
作者:波多尔斯基
出处:https://www.cnblogs.com/podolski/p/16199151.html
microsoft edge webview2 runtime怎么设置青少年模式
操作步骤如下:
打开edge浏览器,点击右上角的头像,选择browse in kids mode。
页面出现5-8岁和9-12岁两个年龄段供大家选择。
选择好年龄段后即可进入儿童模式,软件右上角会在头像上方显示kids mode。
WebView2 Microsoft Edge允许你将 Web 技术 (HTML、CSS 和 JavaScript) 本机应用中。 WebView2 控件使用Microsoft Edge作为呈现引擎,以在本机应用中显示 Web 内容。 使用 WebView2,可以在本机应用的不同部分嵌入 Web 代码,或在单个 WebView 实例中生成所有本机应用。
WebView2 控件使用 Microsoft Edge (Chromium) 作为呈现引擎在应用中显示 Web 内容。 WebView2 作为 WINDOWS UI 库 3 (WinUI3) 的一部分提供。利用WebView2,你可以方便的开发有关网页内容的混合界面。
WebView 是各类操作系统提供的浏览核心控件 , 开发者通常将此类控件封装在应用里以便可以加载网页等内容。有些软件并不需要网页加载功能但有些网页还是需要的,在此前微软提供的主要是IE/Edge HTML版的浏览控件。现在微软已经全面转向Chromium浏览器内核,因此微软宣布推出基于 Chromium 内核的WebView2浏览控件。
webview2runtime下载失败
网络问题。webview2runtime下载失败多数是网络连接异常导致。
1、首先打开电脑检查网络。
2、其次打开runtime软件进行测试网络连接是否异常。
3、最后点击runtime重新进入即可。
microsoft edge webview2 runtime是什么
microsoft edge webview2 runtime 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎,以在本机应用中显示 web 内容。
在 Windows 11 中,该组件默认安装在系统上。 在 Windows 10、8.1 和 Windows 7 中,它是为使用现代版本 Microsoft Office 的用户自动安装的,专门用于运行办公应用程序和基于 Web 的集成组件。
WebView2的优势:
1、Web 生态系统和技能集:利用 web 生态系统中存在的整个 web 平台、库、工具以及人才。
2、快速创新: Web 开发允许快速部署和迭代。
3、Windows 7、8 以及 10 支持:支持跨 Windows 7、Windows 8 以及 Windows 10 的一致用户体验。
4、本机功能:访问完整的本机 API 集。
5、代码共享:向代码库添加 web 代码可以增加跨多个平台的重用。
6、Microsoft 支持:当 WebView2 发布一般可用版 (GA) 时,Microsoft 会提供支持并添加新功能请求。
常青分布。 依赖带有定期平台更新和安全修补的最新版 Chromium。
已修复版本分布。 也可以在应用中打包特定版本的 Chromium 位。
增量采用。 逐步将 web 组件添加到应用。
C#webview2是否加载完成
C#webview2是否加载完成辨别方法:
网页的readyState属性可以返回当前加载状态,共有5种。
1.uninitialized:还没开始加载
2.loading:加载中
3.loaded:加载完成
4.interactive:结束渲染,用户已经可以与网页进行交互。但内嵌资源还在加载中
5.complete:完全加载完成
WebViewDidFinishLoad被调用时,readyState可能处在interactive和complete两种状态。当我们需要对网页中的元素进行修改时,最好在complete状态进行,不然我们的修改可能被重置。例如百度登录页(
microsoft edge webview2runtime有什么作用
microsoft edge webview2 runtime:控件允许在本机应用中嵌入。
WebView2的优势:
1、Web 生态系统和技能集:利用 web 生态系统中存在的整个 web 平台、库、工具以及人才。
2、快速创新: Web 开发允许快速部署和迭代。
3、Windows 7、8 以及 10 支持:支持跨 Windows 7、Windows 8 以及 Windows 10 的一致用户体验。
4、本机功能:访问完整的本机 API 集。
5、代码共享:向代码库添加 web 代码可以增加跨多个平台的重用。
6、Microsoft 支持:当 WebView2 发布一般可用版 (GA) 时,Microsoft 会提供支持并添加新功能请求。
常青分布。 依赖带有定期平台更新和安全修补的最新版 Chromium。
已修复版本分布。 也可以在应用中打包特定版本的 Chromium 位。
增量采用。 逐步将 web 组件添加到应用。
webview2runtime有广告吗
有。WebView2Runtime是微软提供的嵌入式网络浏览控件,新的浏览控件基于MicrosoftEdgebasedonChromium构建。该浏览器有广告,可以通过开通会员进行关闭。WebView2控件使用微软的Edge作为渲染引擎,runtime是运行时刻。是指一个程序在运行(或者在被执行)的状态。
更多文章:
e3400装什么系统(华硕品牌电脑BM5342_11E3400最适合什么系统)
2024年5月29日 00:40
lumi怎么样(刚刚网上看有人说服用lumi胶原蛋白皮肤变得光滑细腻,心动啊问一下用过lumi的朋友,真正效果到底怎么样)
2024年9月15日 08:50
二手戴尔e6400值得买吗(买了二手戴尔D630发现型号是E6400还没有摄像头)
2024年1月14日 15:10
safe and sound(safe and sound 什么意思)
2024年5月31日 21:55
如何注册apple id(如何注册apple id 注册apple id的方法)
2024年10月22日 08:25
电信营业厅网页版登录(请告知电信网上营业厅、掌上营业厅、微厅的区别和登录关注方式,请尽量详细,谢谢!)
2023年2月16日 00:30
谷歌CEO要求员工提升工作效率,称暂不准备裁员?2020年谷歌开发者大会线上举行,大会中有什么亮点吗
2024年9月4日 18:10
三星i9108是什么手机(三星I9100和三星I9108有什么区别嘛)
2023年12月11日 03:35
恵威d100音响用电脑usb转同轴连接音质会提升吗?惠威d100声音闷
2024年8月8日 21:15
汽车充电宝哪个牌子好(汽车搭电充电宝哪个牌子最好,汽车充电宝哪个产品最好)
2024年8月11日 03:05
kindle系列产品对比(kindle 499和kindle 558差在哪)
2024年5月15日 11:34