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