企业级信息化系统绝大部分采用BS架构实现,如门户网站、OA系统、电商网站等,通过浏览器输入Web***即可访问,对于使用者来说非常便捷,对于开发维护者来说也非常方便,程序维护只需更新服务器即可,使用者无感知。但是CS架构的WinForm客户端程序仍然具有很实用的价值,如WPS、IT类的集成开发环境(数据库、图形处理软件)、PC端的小工具。本地程序处理性能更优秀,但是频繁更新带来不友好的客户端体验。还有一种非常常见且实用的业务场景, Web网页与WinForm程序互相集成应用。
在百度网盘的网页中,点击【下载】按钮,首先会检查本地是否已经启动客户端网盘。如果未启动,则弹出提示信息告知用户需要打开客户端程序进行下载。这就是一个典型的Web网页中启动客户端程序的场景。更形象的应用场景是,WinForn/WPF客户端程序嵌入Web程序,Web程序的网页中js调用WinForm/WPF窗体以及业务方法。后面会详细的介绍。
WinForm程序中集成网页的基本原理就是通过一个包含类似浏览器功能的控件,将Web网页载入并解析渲染出来。下面主要介绍 WinForm 集成 Web 网页的几种实现方式。
谈论集成的问题之前,先了解一下浏览器的内核。
浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
内核分类
Trident(MSHTML、IE内核)内核被包含在全世界最高的使用率的操作系统中,即为Windows操作系统,所以我们又经常把它称之为IE内核。
Trident内核的常见浏览器有:
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)、IE11360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)百度浏览器(早期版本)世界之窗浏览器(最初为IE内核,2013年采用Chrome+IE内核)UC浏览器(Webkit内核+Trident内核)其他等其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。
Gecko(Firefox内核)Gecko内核常见的浏览器:Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon。
Webkit(Safari内核,Chrome内核原型,开源)WebKit内核常见的浏览器:Chrome、傲游浏览器3、Apple Safari (Win/Mac/iPhone/iPad)、Symbian***浏览器、Android 默认浏览器。
参考网站:https://liulanmi.com/labs/core.html
BlinkBlink是一个由Google和Opera S(我为你翻山越岭却无心看风景是什么意思?急于找到你,来到你的身边,以至于在路途上没看风景的心情!所爱隔山海,山海皆可平。我跟你隔着山山水水,它们都很美,路上遇到的人也很可爱,但是一想到路的那头有你,我就无心停下来赏花观水,那些想跟我交流的人我也不去搭理。)oftware开发的浏览器排版引擎,Google计划将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月的时候公布了这一消息。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。
浏览器内核检测
ie.icoa.cnhttps://ie.icoa.cn 可检测 PC 或***浏览器内核和操作系统类型,包括Google Chrome的WebKit、IE的Trident、ME的Edge、Firefox的Gecko/Servo,以及Windows/MacOS/Linux/iOS/Android等的判断。
http://mybrowse.osfipin.comWinForm Browser 控件
WebBrowser微软WinForm开发框架中老牌控件。
默认基于IE7内核,对H5网页加载支持不完善。只支持单线程模式,大部分对其操作必须在创建它的线程中执行,不可以在其它线程中调用其方法或属性。性能相对较弱。CefSharp【推荐】CefSharp是一种将功能齐全的符合标准的web浏览器嵌入C#或VB.NET应用程序的简单方法。CefSharp拥有WinForms和WPF应用程序的浏览器控件,以及自动化项目的OffScreen版本。CefSharp基于Chromium Embedded Framework,这是Google Chrome的开源版本。
CefSharp中文帮助文档,请点击查看免费、开源:https://github.com/cefsharp/CefSharp支持JS、C#、WinForm窗体之间相互通讯与调用。兼容性较好,支持H5、CSS5、WebGL等。支持获取Cookies较全面。实际项目应用效果如下:
MiniblinkMiniblink是一个追求极致小巧的浏览器内核项目,全世界。
收费EO.WebBrowser***:https://www.essentialobjects.com/Products/WebBrowser/Default.aspx收费Microsoft Edge WebView2Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge(Chromium) 作为绘制引擎,以在本机应用中显示 web 内容。 使用 WebView2,可以在本机应用的不同部分嵌入 Web 代码,或在单个 WebView 实例中生成所有本机应用。
***:https://docs.microsoft.com/zh-cn/microsoft-edge/webview2免费。诞生较晚,相比CefSharp,功能较弱。所以在客户端程序中嵌入网页程序,首选CefSharp。
欢迎关注、点赞、评论、转发,每天都能获取IT优质内容。
#人民网评钱枫被指性侵#
#警方通报钱枫涉性侵案#
#塔利班:所有美军必须在31日前撤离#
#蔡英文接种台湾高端疫苗第一针#
#东京奥运会金牌掉皮 原因在哪#