如何从WKWebView获取JSContext

Xio*_*ong 26 webkit uiwebview javascriptcore ios8 wkwebview

在UIWebView中,我可以JSContext通过:

[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
Run Code Online (Sandbox Code Playgroud)

同样的方式在WKWebView和应用程序崩溃到达这行代码时不起作用.

有没有办法在WKWebView中获取JSContext?

提前致谢.

Leo*_*ica 10

您无法获取上下文,因为布局和javascript是在另一个进程上处理的.

而是将脚本添加到webview配置中,并将视图控制器(或其他对象)设置为脚本消息处理程序.

现在,从JavaScript发送消息,如下所示:

window.webkit.messageHandlers.interOp.postMessage(message)
Run Code Online (Sandbox Code Playgroud)

您的脚本消息处理程序将收到回调:

- (void)userContentController:(WKUserContentController *)userContentController 
                            didReceiveScriptMessage:(WKScriptMessage *)message{
    NSLog(@"%@", message.body);
}
Run Code Online (Sandbox Code Playgroud)