所以最近我一直在玩Vala和Gtk+3.0,我决定创建一个非常简单的网络浏览器作为我的一个应用程序的一部分,以便显示我的一个网页,它使用谷歌地图API来显示一些标记。我创建了一个如下所示的类:
using Gtk;
using WebKit;
public class WebBrowser : Window {
private string URL = "";
private WebView view;
// Constructor
public WebBrowser () {
this.view = new WebView();
var settings = this.view.get_settings();
settings.enable_plugins = true;
settings.enable_javascript = true;
this.add(view);
}
public void visit (string url) {
this.URL = url;
this.view.load_uri(this.URL);
}
}在我使用的编译标志中
--pkg gtk+-3.0 --pkg webkit2gtk-4.0这个类的用法如下(这里将使用随机数据):
var browser = new WebBrowser();
browser.set_title ("Custom window title!");
browser.default_width = 1200;
browser.default_height = 800;
browser.visit ("http://acid3.acidtests.org/");
browser.show_all ();而且它是有效的。它在考试中得了100分。唯一的问题是,我不能使用实际的WebKit对象。当我调整窗口大小时,WebKit运行正常,并正确调整网页大小,但我无法关闭窗口,也无法以任何方式与网页交互。我可以处理一些信号并手动关闭窗口,但WebKit仍然显示为"frozzen“。有没有办法在对象上启用鼠标控制,或者这只是一个bug?起初我认为这与我使用gtk+-3.0的事实有关,webkit2gtk-4.0可能是为一些较新版本的gtk设计的,但我在某处看到webkit2gtk-3.0被重命名为webkit2gtk-4.0,实际上,如果我使用旧版本的WebKit2,我的应用程序将无法编译。
发布于 2017-04-22 14:24:31
您运行的是哪个版本的WebKitGTK?如果是2.16,那么你可能会遇到这个错误:https://bugs.webkit.org/show_bug.cgi?id=170450修复将在2.16.2中发布,但Fedora已经将补丁添加到了他们的包的2.16.1-2版本中。
https://stackoverflow.com/questions/43499146
复制相似问题