Windows上基于Gtk的Mono.WebBrowser

时间:2013-02-11 14:44:54

标签: c# mono webkit gtk

我正在努力想出最简单的使用方法 在Windows上使用Gtk的Mono.WebBrowser。 Windows.Forms版本有效 罚款(默认情​​况下,如果您未指定Platform.Gtk),但我需要集成到现有的Gtk跨平台应用程序中。

这是一个简单的例子:

public static void Main (string[] args)
{
    Gtk.Application.Init ();
    Gtk.Window win = new Gtk.Window ("Title");
    Mono.WebBrowser.IWebBrowser browser =
        Mono.WebBrowser.Manager.GetNewInstance(Mono.WebBrowser.Platform.Gtk);
    browser.Load(win.Handle, 500, 250);
    win.ShowAll ();
    GLib.Timeout.Add( 500, delegate {
        browser.Navigation.Go ("http://google.com/");
        return false;
    });
    Gtk.Application.Run ();
}

编译,运行和浏览器.Initialized是真的。但它没有呈现为Gtk.Window(或我尝试过的任何其他Gtk.widget)。触发什么 浏览器实际渲染自己?可能是我无法渲染这个 直接进入一个窗口(我看过mono-docbrowser [1]源代码, 并且有一个更复杂的例子,但它也没有呈现。)

我已经看过webkit-sharp,但无法通过Gtk在Windows或Mac上运行。

[1] https://github.com/mono/mono-tools/tree/master/docbrowser

4 个答案:

答案 0 :(得分:5)

我无法回想起究竟在哪里,但我在某处读到Mono.WebBrowser命名空间在某种程度上已被弃用,转而支持WebkitSharp。

之前我尝试过类似的东西,但是我在linux发行版中使用了webkit-sharp.dll。试图编译它并在Windows上运行它但它没有奏效。所以事实证明我错过了webkit-gtk dll,它实际上是渲染整个东西的那个(webkit-sharp只是胶水代码,如果你愿意,它就是一个包装器)

我之后发送了一封电子邮件给其中一位维护人员(Andreia Gaita)并得到了一个可能对你有帮助的回复(关于在windows / osx中使用webkit-sharp)给我留言,我会转发给你那封邮件。

答案 1 :(得分:0)

Gluezilla已经死了(不适用于新的Firefox)并且Webkit-sharp还不成熟(技术上没有死,但我听说结果大致相同)。我不知道其他选择。

答案 2 :(得分:0)

我只能确认Gustavo说的话:Mono.WebBrowser从未为我工作过。 webkit-sharp的问题在于,即使它是跨平台的,它也讨厌Windows。 webkit-sharp实际上是webkit-gtk的.NET绑定(例如,在Gtk窗口中嵌入WebKit)。但即使Gtk#/ Mono和WebKit都在Windows上工作,webkit-gtk在这里也会遇到很多麻烦。

答案 3 :(得分:0)

我不能告诉你为什么你的代码不起作用,但我可以建议你使用Awesomium,一个被黑客攻击的Chromium来源,你可以在C ++或.Net应用程序中集成。

他们的wiki相当不完整,但SDK下载包含了几个如何使用它的示例。

Awesomium:http://awesomium.com/ 维基:http://wiki.awesomium.net/