從 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} 處理程式會導致 NSInvalidArgumentExceptionexception。