顧名思義,內嵌式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訪問靈活)







