基于.net開發(fā)chrome核心瀏覽器【二】
一:
上一篇的鏈接:
二:
相關(guān)資源介紹:
chrome Frame:
讓IE有一顆chrome的心,看起來不錯,但我沒有深入研究這個東西。
http://www.google.com/chromeframe?hl=zh-CN&quickenable=true
https://developers.google.com/chrome/chrome-frame/
WebKit.Net
已經(jīng)有一段時間沒人更新這個開源項目了,沒有研究過
http://sourceforge.net/projects/webkitdotnet/
CEF
研究過,很不錯的類庫,但是是C和C++寫的
https://code.google.com/p/chromiumembedded/
http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html(園友譚振林寫的相關(guān)文章)
Xilium.CefGlue
基于CEF,用.net包裝過,很不錯,我就用的這個類庫(Xilium.CefGlue/3)
https://bitbucket.org/xilium/xilium.cefglue/wiki/Home
O.N.E
國內(nèi)的人開發(fā)的,沒研究過,貌似收費(fèi)的。
node-webkit
園子里的人開發(fā)的,非常不錯的點(diǎn)子,node和chromium的結(jié)合,贊
https://github.com/rogerwang/node-webkit/
http://www.cnblogs.com/zhchbin/
qt
我在這方面花費(fèi)了大量的時間和精力,結(jié)果是一個坑跟著一個坑,但到現(xiàn)在還是不忍放棄
http://qt-project.org/downloads
另外
這里說到的很多資源都是園友在上一篇文章中提到的。
謝謝你們。
三:
CEF有兩個版本,CEF1和CEF3
CEF1是單進(jìn)程的,實(shí)現(xiàn)了更多的特性,內(nèi)存使用更少,與客戶端應(yīng)用更能完美的結(jié)合,使用的是WebKit的API,但是FLASH無法在這個框架中正常播放,不支持html5的音頻和視頻,只支持NPAPI插件。關(guān)于NPAPI插件的相關(guān)知識,請參閱這里:http://developer.chrome.com/extensions/npapi.html(好像要翻墻)
CEF3是多進(jìn)程的,使用異步消息的方式來完成主進(jìn)程和其他進(jìn)程的通信(其他進(jìn)程有可能是Webkit,也有可能是V8的解析引擎進(jìn)程),使用的是 chromium官方的內(nèi)容呈現(xiàn)API,支持NPAPI和PPAPI插件,有一個單獨(dú)的進(jìn)程用于調(diào)試,相對于CEF1來說,雖然可以播放FLASH等視頻,但是還有很多問題沒有處理掉,社區(qū)里的人認(rèn)為CEF1更穩(wěn)定一些,CEF3的issues列表,請參閱這里:https://code.google.com/p/chromiumembedded/issues/list
我們選用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是對CEF項目的.net的包裝,它是用P/Invoke的方式來調(diào)用CEF類庫的,請參見:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home
還有一個CEFSharp的項目,是用C++/CLI的方式來調(diào)用CEF類庫的,請參見:https://github.com/chillitom/CefSharp
四:
下載最新版的CEF的動態(tài)鏈接庫
下載地址為:http://xilium.bitbucket.org/cefglue/
一定要在這個頁面來下載!因?yàn)橹挥羞@個頁面給出的動態(tài)鏈接庫才是Xilium.CefGlue所支持的
目前看到的是3.1353.1236版本(我沒有下載debug版本的)
五:
下載最新的Xilium.CefGlue代碼
下載地址:https://bitbucket.org/xilium/xilium.cefglue/overview
右側(cè)點(diǎn)“下載”就可以了
六:
把下載到的兩個壓縮包都解壓縮
把\cef_binary_3.1453.1236_windows_xilium\Release目錄里的文件復(fù)制出來
粘帖到:\xilium-xilium.cefglue-50e94efc4182\CefGlue.Demo.WinForms\bin\Debug目錄下
七:
打開\xilium-xilium.cefglue-50e94efc4182\目錄下的解決方案文件
把CefGlue.Demo.WinForms設(shè)為啟動項目
注意事項:
1.
把程序集CefGlue.Demo.GtkSharp卸載掉,
這個程序集是給mono平臺用的,你也可以把WPF相關(guān)的程序集也卸載掉
2.
右鍵單擊CefGlue.Demo.WinForms程序集,點(diǎn)屬性,選擇調(diào)試,
取消選中“啟用visual studio承載進(jìn)程”,
因?yàn)镃EF3是基于多進(jìn)程的,VS無能力承載,所以只有取消掉這個選項
3.
右鍵單擊CefGlue.Demo.WinForms程序集,點(diǎn)屬性,選擇生成,把目標(biāo)平臺改成X86
(這一項如果編譯不通過再來修改也無礙)
八:
編譯并執(zhí)行,你就可以看到CefGlue為你寫的DEMO了。
你如果線這個DEMO里的代碼比較復(fù)雜,你也可以看看CefGlue.Client這個程序集這個程序集是個比較簡單的DEMO,你也可以按照上面的步驟讓這個DEMO跑起來。
九:
上面的DEMO看起來是這個樣子的:
在這個DEMO的samples菜單中有幾個簡單的示例
這給開發(fā)者提供方便的,開發(fā)者在寫自己的程序時,經(jīng)常會看這幾個DEMO
但幾個DEMO實(shí)在是太少了。
十:
打開cef_binary_3.1453.1236_windows_xilium目錄中的工程文件
(這才是CEF項目,前面說的是基于CEF開發(fā)的CefGlue項目)
編譯并運(yùn)行
你會看到一個類似這樣的界面:
這個DEMO中,主菜單中的test是為開發(fā)人員準(zhǔn)備的DEMO
明顯比CefGlue要多一些!
如果你有一些C和C++功底(不用很高)也能看懂這里的例子
十一:
說實(shí)在的,這個項目還是有挺多的坑的,我已經(jīng)碰到了好幾個。
跌跌撞撞總算走過來了,我一步一步的把我的經(jīng)驗(yàn)都分享給園友。