ONE開(kāi)放式瀏覽器引擎 ONE的原理是這樣的,通過(guò)對(duì)trident、gecko和webkit的com接口重新映射在ONE架構(gòu)里面,產(chǎn)生出一個(gè)只有一種命名空間的瀏覽器模型(如果還有第四個(gè)引擎適合,也可以這樣累積下去)。trident在.NET里面有較詳細(xì)的實(shí)現(xiàn),gecko則需要參考xulrunner開(kāi)源項(xiàng)目,webkit則需要參考webkit開(kāi)源項(xiàng)目,這三者均分別可以在,msdn、mozilla和webkit的官方網(wǎng)站找到指引,這里就不詳細(xì)說(shuō)明了。
ONE由ONE命名空間下的OneWebNavigator控件組成,OneWebNavigator控件繼承自 System.Windows.Forms.Panel類,最小的.NET CLR版本是2.0.50727。在XP上需要安裝.NET 2.0.50727運(yùn)行時(shí),在Windows Vista/Seven可以直接使用,目前采用32位的編譯方式。
核心文件: one.exe
* 作為控件時(shí),包含了ONE.OneWebNavigator Control。
* 作為瀏覽器時(shí),包含了One Alpha瀏覽器,啟動(dòng)時(shí)使用參數(shù)--help可以查
庫(kù)文件:
* webkit
和one.exe放在同一個(gè)文件夾內(nèi),包含了webkit.dll等必須的運(yùn)行時(shí)文件。webkit.dll源自nightly.webkit.org的源程序編譯而成。
* gecko
和one.exe放在同一個(gè)文件夾的Gecko.Library文件夾內(nèi),包含了xulrunner等必須的運(yùn)行時(shí)文件。xulrunner源自releases.mozilla.org的源程序編譯而成。
* trident
和one.exe放在同一個(gè)文件夾的Microsoft.mshtml.dll文件,源于.NET Primary Interop Assemblies。
ONE的源代碼
1) C# 瀏覽器 (多窗口):多進(jìn)程多窗口演示如何創(chuàng)建一個(gè)OneWebNavigator應(yīng)用程序。
2) C# 瀏覽器 (多標(biāo)簽頁(yè)):擴(kuò)展OneWebNavigator為OneWebNavigatorEx控件,演示創(chuàng)建新的控件并重新影射OneWebNavigator的接口。
3) VB.NET 瀏覽器 (多文檔窗口):多文檔界面(MDI)窗口示范,在一個(gè)MDI母窗體內(nèi)動(dòng)態(tài)創(chuàng)建OneWebNavigator的單文檔界面(SDI)窗口。
ONE項(xiàng)目設(shè)置要點(diǎn)
1) 輸出文件夾設(shè)定
程序集文件的輸出文件夾必須和one.exe及webkit庫(kù)、gecko庫(kù)、trident庫(kù)的位置一樣,否則庫(kù)文件驗(yàn)證時(shí)無(wú)法通過(guò)(因?yàn)檎也坏剑?/p>
2) 32位編譯方式
在64位的Windows里,vs2008編譯時(shí)必須采用x86(32位)的方式。