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程序本地化,提升执行效率,保护软件不轻易被破解。

案例

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

DEMO

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

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

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

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

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

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

CEF3可行性的更多相关文章

  1. SE Springer小组之《Spring音乐播放器》可行性研究报告三、四

    3 对现有系统的分析 由于本次可行性分析主要是建立在团队自行实现一个音乐软件的目标上,并不是在一个现有系统的基础上开发改进的新系统.因此这里将分析一款市面上已经存在的音乐软件(以下称为W音乐),并为之 ...

  2. 如何在windows上编译Chromium (CEF3) 并加入MP3支持(二)

    时隔一年,再次编译cef3,独一无二的目的仍为加入mp3支持.新版本的编译环境和注意事项都已经发生了变化,于是再记录一下. 一.编译版本 cef版本号格式为X.YYYY.A.gHHHHHHH X为主版 ...

  3. 如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持

    一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两 ...

  4. cef3 获得js 返回值, 以及js 指挥delphi 函数的 总结参考

     cef3  如何加载 本地html 文件.   请教老师[吐槽]常忘<run_fan@qq.com>  22:21:45@lazarus 下载cef3中的范例中就有  [吐槽]常忘< ...

  5. POJ3211 Washing Clothes[DP 分解 01背包可行性]

    Washing Clothes Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9707   Accepted: 3114 ...

  6. POJ1742 Coins[多重背包可行性]

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 34814   Accepted: 11828 Descripti ...

  7. POJ1276Cash Machine[多重背包可行性]

    Cash Machine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 32971   Accepted: 11950 De ...

  8. CEF3开发者系列之JS与C++交互之二

    本文翻译自JavaScriptIntegration (https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration).本 ...

  9. CEF3开发者系列之JS与C++交互之一

    JS与Native交互是相对于比较困难的技术,在学习这门技术之前,我们先了解下浏览器内核中的JS引擎与chromium内核的V8引擎相关知识.在浏览器应用中,JS与本地代码互相调用,得益于浏览器内核对 ...

随机推荐

  1. 使用LinkedList模拟一个堆栈或者队列数据结构

    使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出  如同一个杯子. 队列:先进先出  如同一个水管. import java.util.LinkedList; public cl ...

  2. Android应用中如何保护JAVA代码

    Java Classes字节码的反编译太容易了,有很多功能强大的反编译利器可以轻松的将Java字节码 反转为源代码,但是android中普通.apk文件可以轻松的被反编译为Java源代码吗? 答案是当 ...

  3. 微信开发中遇到“当前页面的url未注册”问题

    在公众号后台设置支付授权目录,完全按照规则去设定的,但是在实际测试中会出现“当前页面的url未注册”的问题,反复确认后发现目录并没有问题,唯一的区别就是大小写不同. 但是一般url不都是不区分大小写的 ...

  4. Sqlserver2005日志文件太大,使其减小的方法

    Sqlserver2005日志文件太大,使其减小的方法: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith ...

  5. javascript常用判断写法

    js验证表单大全,用JS控制表单提交 ,javascript提交表单 目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长度限制 2.:js判断汉字.判断是 ...

  6. C#编程总结(一)序列化

    C#编程总结(一)序列化 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 几种序列化技术:      1) ...

  7. 第 27 章 CSS 传统布局[上]

    学习要点: 1.布局模型 2.表格布局 3.浮动布局 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的. 一.布局模型 在早期没有平 ...

  8. 第 11 章 进度条媒体对象和 Well 组件

    学习要点: 1.Well 组件 2.进度条组件 3.媒体对象组件 主讲教师:李炎恢 本节课我们主要学习一下 Bootstrap 的三个组件功能:Well 组件.进度条组件.媒体对象组件. 一.Well ...

  9. Guava学习笔记:复写的Object常用方法

    在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这 ...

  10. Vis.js – 基于浏览器的动态 JavaScript 可视化库

    Vis.js 是一个动态的,基于浏览器的可视化库.该库被设计为易于使用,能处理大量的动态数据.该库由以下几部分组成:一是数据集和数据视图,基于灵活的键/值数据集,可以添加,更新和删除项目,订阅数据集变 ...