黃聰:C# 開發Chrome內核瀏覽器(WebKit.net)

WebKit.net是對WebKit的.Net封裝,使用它.net程序能夠很是方便的集成和使用webkit做爲加載網頁的容器。這裏介紹一下怎麼用它來顯示一個網頁這樣的一個最簡單的功能。css

第一步:

下載WebKit.net 的bin文件。別小看這一步,你不必定能下載成功,緣由你懂的。html

WebKit.net 的主頁是http://webkitdotnet.sourceforge.net/css3

直接下載0.5版本的windows bin文件地址爲:https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/downloadweb

第二步:

新建一個WindowsForms工程。windows

而後把下載好的webkit.net bin目錄下的全部文件複製到新建工程的bin/Debug/目錄下。瀏覽器

添加引用,經過瀏覽添加對「WebKitBrowser.dll」的引用。框架

image

第三步:

來寫寫代碼了。雙擊Form1的窗體進入代碼,寫下這幾行代碼:測試

 private void Form1_Load(object sender, EventArgs e)
        {
            WebKit.WebKitBrowser browser = new WebKitBrowser();
            browser.Dock = DockStyle.Fill;
            this.Controls.Add(browser);
            browser.Navigate("http://hcsem.com");
        }
與IE內核的WebBrowser對比:

很是簡單的三步就完成了。但是話說回來了,時下都流行一步到位的,例如使用System.Windows.Forms.WebBrowser 。字體

使用.Net框架自帶的,調用IE內核的WebBrowser來顯示網頁也許更簡單些,只須要在新建的工程中寫下這麼幾行代碼即可:this

  private void Form1_Load(object sender, EventArgs e)
        {
            WebBrowser browser = new WebBrowser();
            browser.Dock = DockStyle.Fill;
            this.Controls.Add(browser);
            browser.Navigate("http://hcsem.com");   
        }

運行起來的效果看起來差很少,肉眼基本只能看出字體稍微不一樣而已:

既然都差很少,那爲何還不厭其煩的去下載幾個M的dll來顯示網頁呢?這是由於若是使用IE內核的WebBrowser咱們沒法預知對網頁的顯示效果,例如你的電腦是xp,可能會調用ie6做爲加載器,若是是win7,可能會調用ie8做爲加載器,而他們的顯示效果是不徹底同樣的。下面用一個例子來看看。

http://css3.zxq.net/doraemon/doraemon_css3.html 這個頁面是用來測試瀏覽器對css3的支持程度的。如今咱們分別用2個方法來顯示這個頁面。

 private void Form1_Load(object sender, EventArgs e)
        {
            WebBrowser browser = new WebBrowser();
            browser.Dock = DockStyle.Fill;
            browser.Navigate("http://css3.zxq.net/doraemon/doraemon_css3.html");
            splitContainer1.Panel1.Controls.Add(browser);

            WebKit.WebKitBrowser kitBrowser = new WebKitBrowser();
            kitBrowser.Dock = DockStyle.Fill;
            kitBrowser.Navigate("http://css3.zxq.net/doraemon/doraemon_css3.html");
            splitContainer1.Panel2.Controls.Add(kitBrowser);
        }

 

本機的系統是win7+IE9,可是經過WebBrowser調用,估計仍然使用的是IE8內核,因此顯示效果不好。

經過這樣左右對比,能夠看出多了一步麻煩,是有必要的。

相關文章
相關標籤/搜索