用更好的浏览器替代.NET WebBrowser控件,如Chrome?
是否有任何相对简单的方法将现代浏览器插入到.NET应用程序中?
据我所知, WebBrowser
控件是IE的包装,除了它看起来是一个非常旧的IE版本之外,这不会成为问题,所有这一切都需要通过CSS拧紧,潜在的安全性风险(如果渲染引擎没有打补丁,我真的可以期望缓冲区溢出问题得到解决吗?)和其他问题。
我正在使用Visual Studio C#(快速版 - 它在这里有什么区别?)
我想在我的应用程序中集成好的网络浏览器。 在某些情况下,我只是用它来处理用户注册过程,与我的网站的某些功能以及其他顺序相关的接口,但我有另一个应用程序,需要更多的错误控制。
我需要:
我一直在考虑Chrome,因为它属于BSD许可证,但我会对最近的IE版本感到满意。
尽可能地,我想保持简单。 最好的情况是,如果可以修补现有的WebBrowser
控件,该控件已经达到我需要的70%左右,但我认为这是不可能的。
我找到了Mozilla的activeX控件(http://www.iol.ie/~locka/mozilla/control.htm),但它看起来像是旧版本,所以它不一定是改进。
我乐于接受建议
Checkout CefSharp .Net绑定,我开始的一个项目,很幸运地得到社区的欢迎,变成了一些美好的东西。
该项目包装Chromium嵌入式框架,并已用于多个主要项目,包括Rdio的Windows客户端,Windows Messenger的Facebook Messenger和Windows的Github。
它具有用于WPF和Winforms的浏览器控件,并具有大量功能和扩展点。 基于Chromium,它的速度也很快。
从NuGet中获取: Install-Package CefSharp.Wpf
或Install-Package CefSharp.WinForms
查看示例并给出您的想法/反馈/请求:https://github.com/cefsharp/CefSharp
BSD授权
如果你不知道,Chrome会使用Webkit的一个分支,Safari也会使用它。 以下是几个同样重要的问题:
Webkit的一个并不好,因为其他答案指出,一个版本不再有效(谷歌代码),而Mono则是实验性的。 如果有人努力为它制作一个体面的.NET包装器,但它不是任何人似乎都想做的事 - 这是令人惊讶的,因为它现在支持HTML5和IE(8 )引擎缺乏。
更新(2014年)
有一个新的双重许可项目,允许您将Chrome嵌入到名为Awesomium的.NET应用程序中。 它带有一个.NET api,但需要很多黑客进行渲染(这些示例将浏览器窗口绘制到缓冲区,将缓冲区绘制为图像并在定时器上刷新)。
我认为这是Origin在战地3中使用的浏览器。
更新(2016)
现在有了DotnetBrowser,这是Awesomium的一个商业替代品。 它基于Chromium。
我已经测试了C#Web浏览器组件的替代品几天了,这里是我的列表:
1.使用较新的IE版本8,9:
Web浏览器组件是IE7而不是IE8? 如何改变这一点?
优点:
缺点:
这不需要太多的工作,你可以得到一些HTML5和CSS3的支持,虽然IE9缺乏一些最好的CSS3和HTML5功能。 但我相信你可以让IE10以同样的方式运行。 问题在于目标系统必须安装IE10,而且由于Windows 7仍然处于预览状态,所以我会提出反对意见。
2. OpenWebKitSharp
OpenWebKitSharp是基于WebKit.NET 0.5项目的webkit引擎的.net包装器。 WebKit是Chrome / Safari使用的布局引擎
优点:
缺点:
OpenWebKit是相当不错的,虽然许多功能还没有实现,但我在Visual Studio中使用它时遇到了一些问题,它在此处引发null对象引用,然后在设计模式中使用它,但有一些问题。 每个使用它的人都会立即注意到js alert没有任何作用。 像mouseup,mousedown等事件不起作用,js拖放是越野车等。
安装它也有一些困难,因为它需要安装特定版本的VC可再发行组件,所以在例外之后,我查看了事件日志,找到了VC的版本并安装了它。
3. GeckoFX
优点:
缺点:
GeckoFX是一个跨平台的Webrowser控件,用于嵌入到WinForms应用程序中。 这可以在Windows上使用.NET,在Linux上使用mono。 Gecko是Firefox使用的布局引擎。
我遇到了一些GeckoFX没有被积极开发的信息,这当然是Firefox的一两个版本,但这是正常的,我对活动和控件本身印象深刻。 它做我需要的一切,但我需要一些时间让它运行,这里有一个小教程让它运行:
如果你真的必须使用Chrome浏览器,看看这个名为Awesomium的产品,它对非商业项目是免费的,但许可证是几千美元的商业。
链接地址: http://www.djcxy.com/p/21413.html上一篇: Replacing .NET WebBrowser control with a better browser, like Chrome?