Подтвердить что ты не робот

Mono.WebBrowser на основе Gtk в Windows

Я пытаюсь придумать простейший пример использования Mono.WebBrowser с использованием Gtk в Windows. Работает версия Windows.Forms fine (по умолчанию, если вы не указали 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 ();
}

который компилирует, запускает и браузер. Инициализировано верно. Но он не отображается в Gtk.Window(или любой другой Gtk.widget, который я пробовал). Какие триггеры браузер, чтобы фактически сделать себя? Возможно, я не могу это сделать. прямо в окно (я посмотрел на источник mono-docbrowser [1], и иметь более сложный пример, но он тоже не отображается).

Я посмотрел на webkit-sharp, но не могу заставить его работать на Windows или Mac с Gtk.

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

4b9b3361

Ответ 1

Я точно не помню, где, но где-то я читал, что пространство имен Mono.WebBrowser было каким-то образом устарело в пользу WebkitSharp.

Я пробовал что-то подобное раньше, но я использовал webkit-sharp.dll из своего дистрибутива Linux. Пытался скомпилировать его и запустить его на окнах, но он не сработал. Так получилось, что мне не хватало webkit-gtk dll, который фактически отображает все (webkit-sharp - это всего лишь клей-код, если вы это сделаете)

Я отправил письмо тогда одному из сопровождающих (Андрея Гайта) и получил ответ, который может вам помочь (об использовании webkit-sharp в windows/osx), напишите мне строку, и я отправлю вам эту почту.

Ответ 2

Gluezilla мертв (не работает с новым Firefox) и Webkit-sharp еще не созрел (технически не мертв, но я слышал, что результат в основном такой же). Я не знаю других вариантов.

Ответ 3

Я могу только подтвердить, что сказал Густаво: Mono.WebBrowser никогда не работал у меня. Проблема с webkit-sharp заключается в том, что даже если она кросс-платформенная, она ненавидит Windows. webkit-sharp на самом деле является привязкой .NET для webkit-gtk (например, внедрение WebKit в окне Gtk). Но даже если оба Gtk #/Mono и WebKit работают в Windows, webkit-gtk создает здесь массу проблем.

Ответ 4

Я не могу сказать вам, почему ваш код не работает, но я могу предложить вам использовать Awesomium, взломанный источник Chromium, который можно интегрировать либо в приложение С++, либо в .NET.

Их wiki довольно неполна, но загрузка SDK содержит несколько примеров того, как ее использовать.

Awesomium: http://awesomium.com/ Wiki: http://wiki.awesomium.net/