0

webkit2gtk在我的 Vala 程序中使用向用户显示一些页面并webkit2gtk-web-extension管理 DOM。但是由于构建错误,我不能同时使用这两个包。当我将这两个包添加到cmake系统时,它显示此错误:

webkit2gtk-web-extension-4.0.vapi:2619.2-2619.38: error: `WebKit' already contains a definition for `URIRequest'
    public class URIRequest : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-4.0.vapi:488.2-488.38: note: previous definition of `URIRequest' was here
    public class URIRequest : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-web-extension-4.0.vapi:2628.2-2628.39: error: `WebKit' already contains a definition for `URIResponse'
    public class URIResponse : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
webkit2gtk-4.0.vapi:497.2-497.39: note: previous definition of `URIResponse' was here
    public class URIResponse : GLib.Object {
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

如果我从 中删除其中一个包,则CMakeLists.txt找不到 WebKit.WebView 或 WebKit.Webpage。

也许这是因为我webkit2gtk-4.0自己构建了包并且没有使用存储库版本,我不知道。

那么,问题来了:如何管理它?

4

2 回答 2

1

以nemequ的回答为基础。这两个库不能同时使用,等等。Webkit2GTK-4.0 绑定需要工作以支持 DOM 操作。具体来说,WebKit2GTK 绑定需要 JSCore 支持。如果没有 JSCore,即使不可能在 WebKit2GTK 中修改 JS 上下文也很困难。至少这是在 WebKitGtk-3 中的设置方式。

同时,您实际上可以使用 WebKitGtk-3.0 DaveDoesDev 在这里列出了一个完美的教程:http ://www.davedoesdev.com/wrapping-webkit-part-1-gtk+-vala/

您可以在此处查看工作实施:https ://github.com/CT-Architecture/AbstractStudio-Baseline/blob/master/src/widgets/webkitView.vala

这是 JSCore Vapi:https ://github.com/CT-Architecture/AbstractStudio-Baseline/blob/master/vapi/javascriptcore.vapi

于 2014-12-29T21:43:47.570 回答
0

这两个包不能同时使用。这不是 Vala 绑定的问题——在 C 级别也是如此,这是设计使然。

于 2014-12-24T03:25:30.263 回答