消息处理程序无法在iOS 9的WKWebView中工作

时间:2019-04-08 16:33:15

标签: javascript swift ios9 wkwebview

我创建了一个使用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中的错误,还是有其他方法可以实现?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。原来是JavaScript错误。显然,iOS <12在声明变量时不支持“ let”。