[Winform]WebKit.Net使用

时间:2024-04-03 16:58:28

摘要

在项目中使用了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下。

[Winform]WebKit.Net使用

添加引用,引用WebKitBrowser.dll

[Winform]WebKit.Net使用

测试

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);
        }
    }
}

结果

[Winform]WebKit.Net使用

总结

最后选择了webkit.net作为winform内嵌的浏览器,首先winform自带的webbrowser与系统ie相关,兼容性不好。二是cefsharp,在触屏电脑上有个bug,就是如果长按页面的文本,就会出现崩溃。另外,安卓内嵌的webview也是基于webkit内核的,所以对触屏之类兼容性较好,本demo也在触屏电脑上测试了,没有cefsharp的长按崩溃的问题。