有没有相对简单的方法将现代浏览器插入.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:
优点:
- 让它运行不需要太多工作
- 一些HTML5 / CSS3支持如果IE9,如果IE10完全支持
缺点:
- 目标机器必须安装目标IE版本,IE10仍然在Win7上进行预览
这不需要太多工作,你可以获得一些HTML5和CSS3支持虽然IE9缺乏一些最好的CSS3和HTML5功能。 但我相信你可以让IE10以同样的方式运行。 问题是目标系统必须安装IE10,并且由于仍然在Windows 7上进行预览,我建议不要使用它。
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的一两个版本,但这是正常的,我对活动和控件本身印象非常深刻。 它完成了我需要的一切,但是我需要一些时间才能让它运行,这是一个让它运行的小教程:
- 下载GeckoFx-Windows-16.0-0.2 ,在这里你可以检查GeckoFX是否有更新版本
- 添加对两个下载的dll的引用
- 由于GeckoFX是包装器,您需要XulRunner,请转到版本列表以查看您需要的版本
- 现在我们知道我们需要哪个版本的XulRunner,我们转到Mozilla XulRunner版本 ,转到版本文件夹 - >运行时 - > xulrunner-(your_version).en-US.win32.zip,在我们的例子中是xulrunner-16.0.en- US.win32.zip
- 解压缩所有内容并将所有文件复制到bin \\ Debug(如果项目设置为release,则发布)
- 转到您的表单的视觉工作室设计器,转到工具箱,右键单击里面 - >选择项目 - >浏览 - >查找下载的GeckoFX winforms dll文件 - >确定
- 现在你应该有新的控件GeckoWebBrowser
如果您真的必须使用Chrome,请查看这款名为Awesomium的产品,它可以免费用于非商业项目,但许可证是几千美元用于商业用途。
#5楼
Geckofx和Webkit.net一开始都很有希望,但是随着Internet Explorer的改进,它们并没有跟上Firefox和Chrome的最新状态,Webbrowser控件也是如此,尽管默认情况下它的行为类似于IE7,无论你使用的是什么IE版本但是可以通过进入注册表并将其更改为允许HTML5的IE9来修复。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3162999