從今天起,記錄CEF使用開發心得經驗

已經使用CEF來呈現桌面程序界面大半年了,歷來沒有寫過相關博文。發現網上的中文資料甚至英文已經沒法知足個人開發需求,很多問題只得本身探索。在此先謝過網絡上各位CEF使用開發博文的貢獻者,沒有大家我也難易快速入手。實在慚愧,因爲精力有限,本身搗鼓出來的東西一直沒有貢獻出來。好吧,從今天開始,面朝大海,春暖花開。網絡

 

原先公司的C++程序界面用GDI+來作,甚是麻煩。後來客戶想要相似豌豆莢那樣的風格,小清新。研究了下豌豆莢,發現它的界面八成是JavaScript,用CEF來嵌入Web頁面。此前也聽一朋友提過Chrome源碼之類云云,也知道如今很多桌面程序界面用JavaScript來作,開發效率高於C++。一直煩心於C++的界面開發,不安分的我也有極大的興趣去作新的嘗試,青春在於折騰。不過公司的程序一直以來採用的是WebBrowser控件,做爲過渡,先在其上作界面。JavaScript邊學邊作,沒辦法,小公司,好多事情都要本身幹,儼然成了一個全棧程序猿。異步

 

真正使用CEF的契機來自於一個棘手的問題。引入了一個JQuery圖表插件來顯示餅狀圖。但考慮到客戶的運行環境多元化,IE各個版本都有哦,甚至於IE6還佔到20%以上。一次兼容性測試,發現該插件在IE8上死活用不了,調了兩天,搞不定。一怒之下,花了一週,替換成了CEF,爲了解決C++與JavaScript互相調用產生死鎖,作了消息循環隊列,來進行異步調用,也大體理解NodeJs採用異步的妙處。此後種種往後再作分說。測試

 

固然CEF對於HTML五、CSS3以及JavaScript標準的支持確實很棒,可定製性也很高,不過從另外一層面也由於它的靈活帶來了很多的麻煩。好比沒有IE那樣的右鍵菜單,要本身作,若是不去修改CEF的內部代碼,還須要去HOOK,但這些也着實是樂趣無窮。插件

相關文章
相關標籤/搜索