是否有用于Windows / C#开发的可嵌入Webkit组件?

时间:2008-09-26 21:47:58

标签: .net com webkit gecko

我见过一些包含Gecko渲染引擎的COM控件(GeckoFX,以及Mozilla发布的控件 - mozctlx.dll)。是否有可以包含在.NET Winform应用程序中的Webkit包装器?

11 个答案:

答案 0 :(得分:39)

我刚刚为 Chromium Embedded Framework 发布了 CefSharp 我的 .Net 绑定的预alpha版本。

查看并告诉我您的想法:https://github.com/chillitom/CefSharp (二进制库和下载页面中提供的示例)

<强>更新: 发布了一个新版本,包括将C#对象绑定到DOM中的功能。

更新2 :不再使用alpha,lib用于实际项目,包括Facebook Messenger for Windows,Rdio的Windows客户端和Github for Windows

答案 1 :(得分:38)

尚未尝试但在SourceForge上找到了WebKit.NET。它已移至GitHub

警告:不再维护,最后一次提交是从2013年初开始的

答案 2 :(得分:18)

Mono's GitHub Repository上有一个WebKit-Sharp组件。我找不到任何关于它的网页浏览文档,我甚至不确定它是WinForms还是GTK#(目前无法从这里获取来源检查),但它可能是你最好的选择,要么方式。

答案 3 :(得分:12)

Berkelium是一个用于制作chrome embeddable的C ++工具。

AwesomiumDotNetBerkeliumAwesomium

的包装器

顺便说一句,此处Awesomium的链接似乎更新。

答案 4 :(得分:7)

  

Mono的Subversion服务器上有一个WebKit-Sharp组件。我找不到任何关于它的网页浏览文档,我甚至不确定它是WinForms还是GTK#(目前无法从这里获取来源检查),但它可能是你最好的选择,要么方式。

我认为这个组件是围绕webkit for Ubuntu的CLI包装器。因此,这个包装器很可能无法在win32上运行

尝试检查另一个变体 - 项目awesomium - 使用webkit的google项目“Chromium”的包装器。此外,awesomium还具有类似于WPF下的3D对象上的交互式网页的功能

答案 5 :(得分:6)

OpenWebKitSharp是WebKit.NET 0.5的一个分支,非常先进。细节: http://code.google.com/p/open-webkit-sharp/

答案 6 :(得分:6)

答案 7 :(得分:2)

Qt 4的Windows版本包括WebKit和用于创建ActiveX组件的类。如果你还没有使用Qt,它可能不是一个理想的解决方案。

答案 8 :(得分:2)

查看DotNetBrowser库。它提供了基于Chromium的WPF和WinForms浏览器控件,它们很容易嵌入到.NET应用程序中。它支持所有现代Web标准,包括HTML5,CSS3和JavaScript。呈现的页面与Google Chrome中的内容完全相同。

该库继承了Chromium的多进程架构 - 每个网页都在一个单独的Chromium进程中呈现,即使在插件崩溃或网页上发生任何其他意外错误之后,应用程序仍将继续工作。

以下是DotNetBrowser提供的一些其他有用功能:可以监听加载事件,处理网络活动,配置代理,模拟用户操作,使用cookie,访问和修改DOM,监听DOM事件,调用JavaScript从.NET开始,反之亦然,在网页上使用网络摄像头和麦克风,设置基于WebRTC的通信,以及more

查看API Reference了解详情。

下面的代码片段演示了如何创建BrowserView,将其嵌入到表单中,以及如何加载URL:

using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;

namespace WinForms.DotNetBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();
            Controls.Add((Control) browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
    }
}

运行上面的示例后,您将获得以下输出:

enter image description here

图书馆是商业图书馆,但它可以在开源和学术项目中免费使用。商业许可证包括针对不同团队规模的支持包。也可以购买图书馆的源代码。

除了自己的页面外,该组件在Visual Studio Marketplace中以NuGet packageVSIX package的形式提供。

答案 9 :(得分:1)

我不认为当前有一个,但Google Code上有一个[几乎没有文件记录]项目,旧版本......

答案 10 :(得分:1)

试试这个http://code.google.com/p/geckofx/ 希望它不是愚蠢的 或者我觉得这个更好 http://webkitdotnet.sourceforge.net/