我正在尝试使用 WKWebView
和 Javascript 接口(interface)实现 Web 和 native 应用程序之间的通信。
我有一个 UITableView
,每个 UITableViewCell
都包含一个 WKWebView
。
我为每个 WKWebView 添加一个 WKUserContentController
,并在这些内容 Controller 中添加一个 scriptMessageHandler
。
但是,在我的 didReceiveScriptMessage 方法中,我不知道哪个 WKWebView
从网络接收到消息。
如何从 didReceiveScriptMessage
方法访问 WKWebView
?
确定哪个 WKWebView 收到消息的最佳方法是什么?
我的代码:
func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {
if message.name == "callbackHandler"{
self.title = message.body as? String ?? "none"
}
}
WKWebView
初始化
let config = WKWebViewConfiguration()
config.preferences.javaScriptEnabled = true
let contentController = WKUserContentController()
contentController.addScriptMessageHandler(self, name: "callbackHandler")
let webview = WKWebView(frame: CGRectZero, configuration: config)
最佳答案
看来 WKScriptMessage 有一个名为 webview 的属性。
关于ios - 如何在iOS中从didReceiveScriptMessage访问WKWebView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43135301/