Windows / C#开发中是否有可embedded的Webkit组件?
我已经看到几个COM控件包装壁虎渲染引擎( GeckoFX ,以及由Mozilla提供的控制 – mozctlx.dll )。 Webkit的包装是否可以包含在.NET Winform应用程序中?
Mono的GitHub存储库中有一个WebKit-Sharp组件。 我找不到任何网页浏览的文档,我甚至不知道它是WinForms还是GTK#(不能从这里获取源代码来检查),但这可能是最好的select办法。
我刚刚发布了CefSharp的预alpha版本,我的.Net绑定为Chromiumembedded式框架 。
检查出来,给我你的想法: https : //github.com/chillitom/CefSharp (二进制库和示例在下载页面中可用)
更新 :发布了一个新版本,包括将C#对象绑定到DOM等等的能力。
更新2 :不再是阿尔法,lib在现实世界的项目中使用,包括Facebook Messenger for Windows,Rdio的Windows客户端和Github for Windows
还没有尝试,但在SourceForge上findWebKit.NET 。 它被转移到GitHub 。
警告:不再维护,最后的提交是从2013年初
Berkelium是一个使embedded铬的C ++工具。
AwesomiumDotNet是一个围绕Berkelium和Awesomium的包装
顺便说一下,这里到Awesomium的链接似乎更加stream行。
Mono的Subversion服务器上有一个WebKit-Sharp组件。 我找不到任何网页浏览的文档,我甚至不知道它是WinForms还是GTK#(不能从这里获取源代码来检查),但这可能是最好的select办法。
我认为这个组件是Ubuntu的webkit的CLI包装。 所以这个包装很可能不能在win32上工作
尝试检查另一个变种 – 项目awesomium – 使用webkit的谷歌项目“ Chromium ”的包装。 也awesomium有function,如应该互动的WPF下的3D对象的网页
OpenWebKitSharp是WebKit.NET 0.5的一个分支,非常先进。 详情: http : //code.google.com/p/open-webkit-sharp/
我能够使用CefSharp(使用铬浏览器 )做到这一点。
这里有几个post显示了这一点:
- 在O2中运行Chrome
- video:安装和运行CefSharp(带WPF浏览器的C#Chrome)
- video:在O2和VisualStudio中自然运行Chrome
Qt 4的Windows版本包括WebKit和类来创buildActiveX组件。 这可能不是一个理想的解决scheme,如果你还没有使用Qt。
看看DotNetBrowser库。 它提供了基于Chromium的WPF和WinForms浏览器控件,这些控件很容易embedded到.NET应用程序中。 它支持所有的现代Web标准,包括HTML5,CSS3和JavaScript。 呈现的页面在Google Chrome浏览器中看起来完全一样。
该库inheritance了Chromium的多进程架构 – 每个网页都在一个单独的Chromium进程中呈现,即使在插件崩溃或网页出现任何其他意外错误之后,该应用程序仍将继续工作。
以下是DotNetBrowser提供的其他一些有用的function:可以监听加载事件,处理networking活动,configuration代理,模拟用户操作,使用cookie,访问和修改DOM,监听DOM事件,从.NET调用JavaScript。反之亦然,在网页上使用networking摄像头和麦克风,build立基于WebRTC的通信, 等等 。
查看API参考了解更多详情。
下面的代码片段演示了如何创build一个BrowserView,将其embedded到Form中,并加载一个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"); } } }
一旦你运行上面的例子,你会得到以下输出:
这个图书馆是商业的,但是它可以在开放源代码和学术项目中免费使用。 商业许可包括不同团队规模的支持包。 也可以购买图书馆的源代码。
除了自己的页面之外,组件还可以作为NuGet包和Visual Studio Marketplace中的VSIX包提供。
我认为目前还没有最新版本,但Google代码中有一个[没有文档logging]的项目,它的旧版本…