我无法让 JavaScriptCore 与 WebKit2Gtk 一起使用。在我的 C 应用程序中,我使用 WebKit2Gtk 作为我希望能够访问 C 函数的应用程序的前端。
WebKitGtk(不是 WebKit2 版本)有几个示例。然而,在邮件列表中有一些信息表明 WebKit2Gtk 的线程性质,它更复杂。不幸的是,我没有找到任何例子。
我在加载回调中写了这段代码:
JSGlobalContextRef jsContext = webkit_web_view_get_javascript_global_context
(WEBKIT_WEB_VIEW(gtk_webview));
JSEvaluateScript(jsContext,JSStringCreateWithUTF8CString
("$('#debuginfo').html('JS API OK')"),0,0,0,0);
不幸的是,WebKit2Gtk 中绝对没有发生任何事情。但是,如果我使用 API 文档中定义的新函数并执行以下操作,我会得到所需的输出。
webkit_web_view_run_javascript(WEBKIT_WEB_VIEW(gtk_webview),
"$('#debuginfo').html('JS API OK')",NULL,NULL,NULL);
带有 run-javascript-function 的新 API 可以快速执行 JS 代码,但我想允许 WebKit2Gtk 中的 JS 代码执行我可以在我的 C 代码中处理的 JS 函数。
期待您的帮助,因为我有点卡在这件事上,在恢复到 WebKitGtk(不是 WebKit2Gtk 版本,而是以前的版本)之前,我很快想检查你们是否对如何实现它有任何想法。