基於.net開發chrome核心瀏覽器【二】


一:

上一篇的鏈接:

基於.net開發chrome核心瀏覽器【一】

二:

相關資源介紹:

chrome Frame:

  讓IE有一顆chrome的心,看起來不錯,但我沒有深入研究這個東西。

http://www.google.com/chromeframe?hl=zh-CN&quickenable=true

https://developers.google.com/chrome/chrome-frame/

WebKit.Net

  已經有一段時間沒人更新這個開源項目了,沒有研究過

  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(園友譚振林寫的相關文章)

Xilium.CefGlue

  基於CEF,用.net包裝過,很不錯,我就用的這個類庫(Xilium.CefGlue/3)

  https://bitbucket.org/xilium/xilium.cefglue/wiki/Home

O.N.E

  國內的人開發的,沒研究過,貌似收費的。

http://www.one-lab.net/

node-webkit

  園子里的人開發的,非常不錯的點子,node和chromium的結合,贊

  https://github.com/rogerwang/node-webkit/

  http://www.cnblogs.com/zhchbin/

qt

  我在這方面花費了大量的時間和精力,結果是一個坑跟着一個坑,但到現在還是不忍放棄

  http://qt-project.org/downloads

open-webkit-sharp

  園友推薦的,我大概看了一下介紹,感覺很不錯的樣子!

  https://code.google.com/p/open-webkit-sharp/

另外

這里說到的很多資源都是園友在上一篇文章中提到的。

謝謝你們。

三:

CEF有兩個版本,CEF1和CEF3

CEF1是單進程的,實現了更多的特性,內存使用更少,與客戶端應用更能完美的結合,使用的是WebKit的API,但是FLASH無法在這個框架中正常播放,不支持html5的音頻和視頻,只支持NPAPI插件。關於NPAPI插件的相關知識,請參閱這里:http://developer.chrome.com/extensions/npapi.html(好像要翻牆)

CEF3是多進程的,使用異步消息的方式來完成主進程和其他進程的通信(其他進程有可能是Webkit,也有可能是V8的解析引擎進程),使用的是chromium官方的內容呈現API,支持NPAPI和PPAPI插件,有一個單獨的進程用於調試,相對於CEF1來說,雖然可以播放FLASH等視頻,但是還有很多問題沒有處理掉,社區里的人認為CEF1更穩定一些,CEF3的issues列表,請參閱這里:https://code.google.com/p/chromiumembedded/issues/list

我們選用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是對CEF項目的.net的包裝,它是用P/Invoke的方式來調用CEF類庫的,請參見:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home

還有一個CEFSharp的項目,是用C++/CLI的方式來調用CEF類庫的,請參見:https://github.com/chillitom/CefSharp

四:

下載最新版的CEF的動態鏈接庫

下載地址為:http://xilium.bitbucket.org/cefglue/

一定要在這個頁面來下載!因為只有這個頁面給出的動態鏈接庫才是Xilium.CefGlue所支持的

目前看到的是3.1353.1236版本(我沒有下載debug版本的)

五:

下載最新的Xilium.CefGlue代碼

下載地址:https://bitbucket.org/xilium/xilium.cefglue/overview

右側點“下載”就可以了

六:

把下載到的兩個壓縮包都解壓縮

把\cef_binary_3.1453.1236_windows_xilium\Release目錄里的文件復制出來

粘帖到:\xilium-xilium.cefglue-50e94efc4182\CefGlue.Demo.WinForms\bin\Debug目錄下

七:

打開\xilium-xilium.cefglue-50e94efc4182\目錄下的解決方案文件

把CefGlue.Demo.WinForms設為啟動項目

  注意事項:

  1.

把程序集CefGlue.Demo.GtkSharp卸載掉,

這個程序集是給mono平台用的,你也可以把WPF相關的程序集也卸載掉

  2.

  右鍵單擊CefGlue.Demo.WinForms程序集,點屬性,選擇調試,

  取消選中“啟用visual studio承載進程”,

  因為CEF3是基於多進程的,VS無能力承載,所以只有取消掉這個選項

  3.

  右鍵單擊CefGlue.Demo.WinForms程序集,點屬性,選擇生成,把目標平台改成X86

  (這一項如果編譯不通過再來修改也無礙)

八:

編譯並執行,

你就可以看到CefGlue為你寫的DEMO了。

你如果嫌這個DEMO里的代碼比較復雜

你也可以看看CefGlue.Client這個程序集

這個程序集是個比較簡單的DEMO,

你也可以按照上面的步驟讓這個DEMO跑起來

九:

上面的DEMO看起來是這個樣子的:

在這個DEMO的samples菜單中有幾個簡單的示例

這給開發者提供方便的,開發者在寫自己的程序時,經常會看這幾個DEMO

但幾個DEMO實在是太少了。

十:

打開cef_binary_3.1453.1236_windows_xilium目錄中的工程文件

(這才是CEF項目,前面說的是基於CEF開發的CefGlue項目)

編譯並運行

你會看到一個類似這樣的界面:

這個DEMO中,主菜單中的test是為開發人員准備的DEMO

明顯比CefGlue要多一些!

如果你有一些C和C++功底(不用很高)也能看懂這里的例子

十一:

說實在的,這個項目還是有挺多的坑的,我已經碰到了好幾個

跌跌撞撞總算走過來了,我一步一步的把我的經驗都分享給園友

請持續關注我的后續文章

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM