我创建了一个使用WKWebView显示HTML页面的应用程序。我嵌入了一个调用javascript函数的按钮,将消息发布到我的代码中。这在iOS 12上完美运行,但是当我为iOS 9调试它根本不起作用。消息处理程序不会被调用。
我已经尝试了几种不同的方法来使这个工作适用于iOS 9,但似乎没有任何工作。
这是我的快速代码:
let config = WKWebViewConfiguration()
let content = WKUserContentController()
content.add(self, name: "callback")
config.userContentController = content
page = WKWebView(frame: self.WKBaseView.bounds, configuration: config)
这是我处理消息的方式:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
dump(message.body)
}
这就是我从JS那里得到的:
try {
webkit.messageHandlers.callback.postMessage("test");
} catch(err) {
console.log('Can not reach app');
}
由于这在iOS 12上完美运行,这是iOS 9中的错误还是有其他方法可以实现这一点?
我解决了这个问题。原来这是一个JavaScript错误。显然iOS <12在声明变量时不支持“let”。