黄聪:C# 开发Chrome内核浏览器(WebKit.net)
WebKit.net是對WebKit的.Net封裝,使用它.net程序可以非常方便的集成和使用webkit作為加載網(wǎng)頁的容器。這里介紹一下怎么用它來顯示一個網(wǎng)頁這樣的一個最簡單的功能。
第一步:
下載WebKit.net 的bin文件。別小看這一步,你不一定能下載成功,原因你懂的。
WebKit.net 的主頁是http://webkitdotnet.sourceforge.net/
直接下載0.5版本的windows bin文件地址為:https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download
第二步:
新建一個WindowsForms工程。
然后把下載好的webkit.net bin目錄下的所有文件復制到新建工程的bin/Debug/目錄下。
添加引用,通過瀏覽添加對“WebKitBrowser.dll”的引用。
第三步:
來寫寫代碼了。雙擊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內(nèi)核的WebBrowser對比:
非常簡單的三步就完成了。可是話說回來了,時下都流行一步到位的,例如使用System.Windows.Forms.WebBrowser 。
使用.Net框架自帶的,調(diào)用IE內(nèi)核的WebBrowser來顯示網(wǎng)頁也許更簡單些,只需要在新建的工程中寫下這么幾行代碼便可:
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來顯示網(wǎng)頁呢?這是因為如果使用IE內(nèi)核的WebBrowser我們無法預知對網(wǎng)頁的顯示效果,例如你的電腦是xp,可能會調(diào)用ie6作為加載器,如果是win7,可能會調(diào)用ie8作為加載器,而他們的顯示效果是不完全一樣的。下面用一個例子來看看。
http://css3.zxq.net/doraemon/doraemon_css3.html?這個頁面是用來測試瀏覽器對css3的支持程度的。現(xiàn)在我們分別用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);}?
本機的系統(tǒng)是win7+IE9,但是通過WebBrowser調(diào)用,估計仍然使用的是IE8內(nèi)核,所以顯示效果很差。
通過這樣左右對比,可以看出多了一步麻煩,是有必要的。
總結(jié)
以上是生活随笔為你收集整理的黄聪:C# 开发Chrome内核浏览器(WebKit.net)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将图片保存到系统相冊的两种方法
- 下一篇: Spark 读 Elasticsearc