摘要
在項目中使用了cefsharp,最后發現在觸屏電腦上面,如果長按文本內容,會經常性的崩潰,發現是cefsharp的問題,最后也等不及了。然后就換了webkit.net這個開源的瀏覽器內核。
關於webkit
WebKit 是一個開源的瀏覽器引擎,與之相對應的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也稱MSHTML,IE 使用)。
同時WebKit 也是蘋果Mac OS X 系統引擎框架版本的名稱,主要用於Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 前身是 KDE 小組的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎來自於 KDE 的 KHTML 和 KJS,當年蘋果比較了 Gecko 和 KHTML 后,仍然選擇了后者,就因為它擁有清晰的源碼結構、極快的渲染速度。Apple將 KHTML 發揚光大,推出了裝備 KHTML 改進型 WebKit 引擎的瀏覽器 Safari。
如何使用
首先需要下載Webkit.Net
官方地址:http://webkitdotnet.sourceforge.net/
下載之后,將bin下的文件拷貝到你的項目Debug下。
添加引用,引用WebKitBrowser.dll
測試
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WebKit; namespace Wolfy.WebKitDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { WebKitBrowser browser = new WebKitBrowser(); browser.Dock = DockStyle.Fill; browser.Navigate("file:///" + AppDomain.CurrentDomain.BaseDirectory + "www/setting.html"); this.Controls.Add(browser); } } }
結果
總結
最后選擇了webkit.net作為winform內嵌的瀏覽器,首先winform自帶的webbrowser與系統ie相關,兼容性不好。二是cefsharp,在觸屏電腦上有個bug,就是如果長按頁面的文本,就會出現崩潰。另外,安卓內嵌的webview也是基於webkit內核的,所以對觸屏之類兼容性較好,本demo也在觸屏電腦上測試了,沒有cefsharp的長按崩潰的問題。