从 JavaScript 发送消息并在本机端处理它们
可以使用以下代码从 JavaScript 发送消息
window.webkit.messageHandlers.{NAME}.postMessage()
这里是如何创建一个脚本消息处理程序来处理消息:
class NotificationScriptMessageHandler: NSObject, WKScriptMessageHandler {
func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage!) {
if message.name == "{NAME}" {
// to be sure of handling the correct message
print(message.body)
}
}
}
这里如何在 WKWebView 中配置脚本消息处理程序:
let configuration = WKWebViewConfiguration()
let userContentController = WKUserContentController()
let handler = NotificationScriptMessageHandler()
userContentController.addScriptMessageHandler(handler, name: "{NAME}")
configuration.userContentController = userContentController
let webView = WKWebView(frame: self.view.bounds, configuration: configuration)
注意: 在
addScriptMessageHandler:name:
中多次添加相同的{NAME}
处理程序会导致NSInvalidArgumentException
exception。