用更好的浏览器替换.NET WebBrowser控件,比如Chrome?

喜夏-厌秋 提交于 2020-02-25 22:13:30

有没有相对简单的方法将现代浏览器插入.NET应用程序?

据我所知, WebBrowser控件是IE的包装 ,除了看起来它是一个非常老的IE版本之外不会有问题,所有这些都需要CSS搞砸,潜在的安全性风险(如果渲染引擎没有打补丁,我真的可以期待修复多个缓冲区溢出问题吗?)和其他问题。

我正在使用Visual Studio C# (快速版 - 它在这里有什么不同吗?)

我想在我的应用程序中集成一个好的Web浏览器。 在某些情况下,我只是使用它来处理用户注册过程,与我的网站的一些功能和该订单的其他东西的接口,但我有另一个应用程序,需要更多错误...控制。

我需要:

  • 可以集成到我的应用程序窗口内的浏览器(不是单独的窗口)
  • 对CSS,js和其他Web技术的良好支持,与任何现代浏览器相同
  • 基本浏览器功能,如“导航”,“返回”,“重新加载”......
  • 自由访问页面代码和输出。

我正在考虑Chrome,因为它属于BSD许可证,但我会对最新版本的IE感到满意。

尽可能地,我想保持简单。 最好的情况是,如果可以修补现有的WebBrowser控件,它已经占我所需要的大约70%,但我不认为这是可能的。

我找到了一个用于Mozilla的activeX控件( http://www.iol.ie/~locka/mozilla/control.htm ),但看起来它是一个旧版本,所以它不一定是一个改进。

我愿意接受建议


#1楼

我尝试过一些Webkit变种,但根据我的经验,没有什么能比OpenWebkitSharp的优势更好 。 喜欢它喜欢它.. HTML5和CSS3分数尽可能接近谷歌Chrome。 非常好的API和事件模型。 如果您发现“未实现”的API很可能是因为它们未在Webkit中实现。 其他一切都很棒。

OpenWebKitSharp是基于WebKit.NET 0.5项目的webkit引擎的.net包装器。 它为0.5版本增加了更多功能,并提供了比构建更多的方法。 OpenWebKitSharp支持Cairo build(0.5)和webkit的每晚构建(默认为Nightly)。 在版本1.5稳定版和更多版本中,包含夜间版本并在构建后自动复制。 在早期版本中,这发生在cairo构建中。 OpenWebKitSharp目前支持GTLite Navigator,这是一款快速,稳定,灵活的Web浏览器。


#2楼

查看GeckoFX控件。


#3楼

如果您正在寻找一个不错的基于IE的控件 - 请查看: http//code.google.com/p/csexwb2/

我在生产产品中使用过它。 这是非常好的,有很好的演示,虽然现在似乎没有像过去那样得到维护。


#4楼

我几天前一直在测试C#Web浏览器组件的替代品,这是我的列表:

1.使用较新的IE版本8,9:

Web浏览器组件是IE7而不是IE8? 怎么改变这个?

优点:

  • 让它运行不需要太多工作
  • 一些HTML5 / CSS3支持如果IE9,如果IE10完全支持

缺点:

  • 目标机器必须安装目标IE版本,IE10仍然在Win7上进行预览

这不需要太多工作,你可以获得一些HTML5和CSS3支持虽然IE9缺乏一些最好的CSS3和HTML5功能。 但我相信你可以让IE10以同样的方式运行。 问题是目标系统必须安装IE10,并且由于仍然在Windows 7上进行预览,我建议不要使用它。

2. OpenWebKitSharp

OpenWebKitSharp是基于WebKit.NET 0.5项目的webkit引擎的.net包装器。 WebKit是Chrome / Safari使用的布局引擎

优点:

  • 积极发展
  • HTML5 / CSS3支持

缺点:

  • 许多功能未实现
  • 不支持x64(必须为x86构建应用程序)

OpenWebKit虽然很多功能还没有实现,但是很好用,我在使用visual studio时遇到了一些问题,它在这里抛出空对象引用,然后在设计模式下,有一些js问题。 每个人使用它几乎会立即注意到js警报什么都不做。 像mouseup,mousedown等等事件不起作用,js拖放是有缺陷的等等..

我在安装它时也遇到了一些困难,因为它需要安装VC可再发行组件的特定版本,所以在异常后我查看了事件日志,找到了VC的版本并安装了它。

3. GeckoFX

优点:

  • 适用于单声道
  • 积极发展
  • HTML5 / CSS3支持

缺点:

  • D̶o̶e̶s̶n̶'̶t̶̶s̶u̶p̶p̶o̶r̶t̶̶x̶6̶4̶̶(̶A̶p̶p̶̶m̶u̶s̶t̶̶b̶e̶̶b̶u̶i̶l̶t̶̶f̶o̶r̶̶x̶8̶6̶)̶ - 见下面的评论

GeckoFX是一个跨平台的Webrowser控件,用于嵌入到WinForms应用程序中。 这可以在Windows上使用.NET,在Linux上使用mono。 Gecko是Firefox使用的布局引擎。

我发现GeckoFX没有积极开发的信息很少,这当然不是真的,当然它总是落后于Firefox的一两个版本,但这是正常的,我对活动和控件本身印象非常深刻。 它完成了我需要的一切,但是我需要一些时间才能让它运行,这是一个让它运行的小教程:

  1. 下载GeckoFx-Windows-16.0-0.2 ,在这里你可以检查GeckoFX是否有更新版本
  2. 添加对两个下载的dll的引用
  3. 由于GeckoFX是包装器,您需要XulRunner,请转到版本列表以查看您需要的版本
  4. 现在我们知道我们需要哪个版本的XulRunner,我们转到Mozilla XulRunner版本 ,转到版本文件夹 - >运行时 - > xulrunner-(your_version).en-US.win32.zip,在我们的例子中是xulrunner-16.0.en- US.win32.zip
  5. 解压缩所有内容并将所有文件复制到bin \\ Debug(如果项目设置为release,则发布)
  6. 转到您的表单的视觉工作室设计器,转到工具箱,右键单击里面 - >选择项目 - >浏览 - >查找下载的GeckoFX winforms dll文件 - >确定
  7. 现在你应该有新的控件GeckoWebBrowser

如果您真的必须使用Chrome,请查看这款名为Awesomium的产品,它可以免费用于非商业项目,但许可证是几千美元用于商业用途。


#5楼

Geckofx和Webkit.net一开始都很有希望,但是随着Internet Explorer的改进,它们并没有跟上Firefox和Chrome的最新状态,Webbrowser控件也是如此,尽管默认情况下它的行为类似于IE7,无论你使用的是什么IE版本但是可以通过进入注册表并将其更改为允许HTML5的IE9来修复。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!