WebKit2.JavascriptResult.get_value()抛出异常" TypeError:找不到' JavaScriptCore.Value'"。

时间:2016-05-31 19:04:56

标签: python webkit gtk pygobject javascriptcore

我正在编写基于python3 + webkit2 + gtk3的GUI。一切正常,但当我尝试在回调函数中使用WebKit2.WebView.run_javascript_finish()时,获取返回(WebKit2.JavascriptResult objetc),使用WebKit2.JavascriptResult.get_value()获取值,我收到了一个& #34; TypeError:找不到针对' JavaScriptCore.Value'"的外来结构转换器。

我有一个"来自gi.repository导入JavaScriptCore"关于进口,我不知道为什么会出现这个错误。

ps:对不起我糟糕的英语。

1 个答案:

答案 0 :(得分:1)

不幸的是,Python不支持使用JavaScriptCore库。

gi.repository.JavaScriptCore中的定义仅包含JavaScriptCore.ValueJavaScriptCore.GlobalContext的不透明定义,以便为使用这些类型的函数提供类型信息;您可以通过查看/usr/share/gir-1.0/JavaScriptCore-4.0.gir进行验证。但正如您所发现的,您实际上无法调用这些函数,因为没有关于如何将这些类型转换为本机Python对象的信息。

我建议在C中编写一个函数,它接收你的WebKit2.JavaScriptResult并从中获取你需要的任何信息,然后在它自己的私有GIR库中导出该函数。因此,您不会在Python代码中使用任何JavaScriptCore类型。这就是它的样子:

from gi.repository import MyAppPrivate
# ...
def on_javascript_finish(obj, res):
    result = obj.run_javascript_finish(res)
    my_real_results = MyAppPrivate.process(result)