在C#中使用chrome作为浏览器?

时间:2010-01-26 18:33:53

标签: c# google-chrome embedded-browser

有没有办法在Google C#应用程序中使用Google Chrome(或Safari或Firefox)作为浏览器? C#现在使用Internet Explorer,他们想要在此程序中使用的网站不支持它。

11 个答案:

答案 0 :(得分:52)

您可以使用WebKit.NET。这是WebKit的C#包装器,它是Chrome使用的呈现引擎。

答案 1 :(得分:43)

您可以使用GeckoFX嵌入firefox

答案 2 :(得分:12)

我不知道任何完整的 Chrome组件,但您可以使用WebKit,它是Chrome使用的渲染引擎。 Mono项目制作了WebKit Sharp,这可能适合你。

答案 3 :(得分:10)

我使用Awesomium,我认为它比GeckoFX / WebKit更好 http://awesomium.com

答案 4 :(得分:5)

OpenWebKitSharp使您可以完全控制WebKit Nightly,这在性能和兼容性方面非常接近webkit。 Chrome使用WebKit Chromium引擎,而WebKit.NET使用Cairo和OpenWebKitSharp Nightly。 Chromium应该是这些版本中最好的,而第二名应该是Nightly,这就是我推荐OpenWebKitSharp的原因。

在OpenWebKitSharp部分

http://gt-web-software.webs.com/libraries.htm

答案 5 :(得分:4)

答案 6 :(得分:3)

1/3/2017 - > 2017年1月3日

您好,今天我发现这篇文章是为了实现这一目标,该文章名为“为桌面.NET应用程序创建HTML UI”,旨在在WPF应用程序中嵌入基于铬的控件。它救了我一天。

https://www.infoq.com/articles/html-desktop-net

我希望它可以帮助其他人。

注意:它基于DotNetBrowser,请参阅此处的许可协议:https://www.teamdev.com/dotnetbrowser-licence-agreement

答案 7 :(得分:2)

答案 8 :(得分:2)

2014年更新:

我使用geckofx这个健康的开源项目(在撰写本文时)与最新的Firefox版本保持同步。

要嵌入Chrome,您可以根据Xilium.cefGlue考虑​​另一个看起来很健康的开源项目 The Chromium Embedded Framework (CEF)

这两个项目都支持WPF和Winforms,两个项目都支持.net和mono。

答案 9 :(得分: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的形式提供。

答案 10 :(得分:2)

2016年更新:

不幸的是,上述大多数解决方案都已过时,不再维护。

我可以建议还有3个其他选项仍在积极开发中:

1. BrowseEmAll.Cef

.Net组件,可用于将 Chrome引擎集成到.Net应用程序中。基于CefGlue,但对最新Chrome版本的更新速度要快一些。此外,还有一个商业支持选项,对某些人来说可能会派上用场。当然,组件本身是开源

2. BrowseEmAll.Gecko

另一个.Net组件,可用于将 Firefox引擎集成到.Net应用程序中。这基于Geckofx,但与当前版本的Geckofx不同,这将适用于Firefox的正常发布版本。要使用Geckofx,您需要自己构建Firefox。再次商业支持可用但组件本身完全开源

3. BrowseEmAll Core API

您的.Net应用程序需要所有不同的浏览器吗?您可以将BrowseEmAll核心API 集成Chrome,Firefox,Webkit和Internet Explorer 到您的应用程序中。这是商业产品,但请注意。

(完全披露:我为这家公司工作,所以把我所说的一切都拿走了)