CEF3可行性

Chromium Embedded Framework

顾名思义,内嵌式CHROME,详细的介绍参阅

http://yogurtcat.com/posts/cef/hello-cef.html

为什么要考虑选择CEF

1、 目前市场上浏览器种类很多,每种的版本也很多,即使我们使用了成熟的UI框架也不能保证每个JS在每种浏览器上都成兼容,程序员也不可能在各种浏览器上调试后再发布

2、 一卡通涉及本地硬件资源操纵(如串口、USB、局域网、UKey),传统方法是制作ActiveX控件,让控件与JS进行交互,这种方法比较脆弱,且安装麻烦,最关键:一般只在IE上正常工作,多数浏览器不能稳定支持ActiveX

参阅:

http://mozilla.com.cn/post/35931/

http://activex-for-chrome.softonic.cn/

CEF在一卡通上如何应用

1、 不需要操纵本地硬件资源的操作员(如增删改查数据、查看报表),可以继续直接使用浏览器访问平台(仍然可能存在兼容性问题)

2、 通过发布安装包,以WINFORM的方式在本地运行程序,固定使用某个版本的CEF,相当于固定使用了某个版本的浏览器,规避兼容性问题。即在一个CS程序中嵌入了浏览器,但平台仍然是以BS为主。

3、 需要操纵本地硬件资源时,由JS通过HTTP向WINFORM(开有HTTP监听)传递消息,执行相关功能,即将原来ActiveX的功能迁移到winform中,规避浏览器兼容ActiveX问题以及解决ActiveX执行不稳定(以及性能低下)的问题

4、 使用VS2013提供的net native功能,将winform程序本地化,提升执行效率,保护软件不轻易被破解。

案例

一卡易就使用了类似的技术

clip_image002

clip_image004

clip_image006

DEMO

提供一个网页,内置2个函数,一个供C#调用,一个通过HTTP调用C#

在CEF程序中打开这个网页,执行相关功能,如下图:

l 点击网页中的第一个按钮

clip_image008

l 点击WINFORM中的TOOL菜单 中的测试菜单

clip_image010

clip_image012

点击页面中的第三个按钮,通过AJAX异步HTTP访问WINFORM

(目前CEF3还不支持直接回调WINFORM,早期的CEF1支持,将来也应该会支持,但是回调不如HTTP访问灵活)

clip_image014

原文地址:https://www.cnblogs.com/QinQouShui/p/3773016.html