简单的解释可以查看这篇文章:
https://medium.com/@hoishing/using-javascript-with-wkwebview-64f94153ad0
如果你想要更深入的解释,你可以查看这篇其他文章:
https://dev.to/gualtierofr/wkwebview-and-javascript-interaction-1pbl
在两篇文章中都提到了如何从 Swift 触发 Javascript 函数 和 接收 Javascript 消息
无论如何,如果你在 JavaScript 中执行这个函数:
window.webkit.messageHandlers.postMessageListener.postMessage(JSON.stringify({data}))
您必须以这种方式在 Swift 中收听名称 postMessageListener:
设置 WKWebView
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
// Here I am guessing that the Frame of the WebView is the entire Screen
let webView = WKWebView(frame: view.frame, configuration: configuration)
configuration.userContentController.add(self, name: "postMessageListener")
遵守协议WKScriptMessageHandler
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "postMessageListener" {
// Manage your Data
}
}