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
Ответы
Ответ 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/