我创建了一个使用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中的错误,还是有其他方法可以实现?
答案 0 :(得分:0)
我解决了这个问题。原来是JavaScript错误。显然,iOS <12在声明变量时不支持“ let”。