我正在尝试使用WKWebView和Javascript接口实现Web与本机应用程序之间的通信。

我有一个UITableView,每个UITableViewCell都包含一个WKWebView
我为每个WKWebView添加一个WKUserContentController,并在那些内容控制器中添加一个scriptMessageHandler

但是,在我的didReceiveScriptMessage方法中,我不知道哪个WKWebView从Web接收到消息。

如何从WKWebView方法访问didReceiveScriptMessage

确定哪个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/

10-13 04:07