ios - 如何在iOS中从didReceiveScriptMessage访问WKWebView?

标签 ios objective-c swift webkit wkwebview

我正在尝试使用 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/

相关文章:

ios - 是否可以使用 XCode 一次将您的 iOS 应用程序安装到所有设备模拟器

ios - 使用 Swift AVPlayer 显示视频轨道的时间码

objective-c - 应该如何更改此代码才能正常工作?

swift - FIRAuth.auth()?.createUser 不创建用户

swift - 如何移动没有 titleBar 且完全充满 webView 的窗口?

ios - 三种firebase存储下载方式的区别

ios - UITextContainerView 隐藏了 UITextView 的可点击链接

ios - NSURLConnectionDownloadDelegate destinationURL

ios - NSUserDefaults 不在 iOS 8 中的应用程序和自定义键盘之间存储值

ios - 在 IOS 中的 PushSegue 期间,目标 Controller View 出现在源 View Controller 中