在WebView中从JavaScript调用本机Swift函数

时间:2016-10-07 11:57:47

标签: swift macos webview javascriptcore

我正在尝试重现此项目的结果:https://github.com/victorchee/JavaScriptCoreDemo

即我想重现第二个按钮,它从Swift调用本机函数。

我遇到的问题是以下代码:

jsContext = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as? JSContext

我得到了一个错误的错误:

2016-10-07 18:39:01.664 JSCore-Test-01[17603:689101] *** WebKit discarded an uncaught exception in the webView:didFinishLoadForFrame: delegate: <NSUnknownKeyException> [<WebView 0x6080001208c0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key documentView.

这个iOS代码的Mac OS X相当于什么?

1 个答案:

答案 0 :(得分:0)

Small research表明所有这些都是public API在macOS&#39;} WebView API。要获取上下文,只需访问

webView.mainFrame.globalContext

对于基于C的API JSGlobalContextRef对象或

webView.mainFrame.javaScriptContext

对于基于Objective-C的JSContext*