苹果提供了一个机制WebKit
将消息从 HTML 发布到本机:
在您的 HTML 页面中,调用:
window.webkit.messageHandlers.messageHandler.postMessage("Pass your data here...");
where, messageHandler
是您的 iOS 代码中收到的消息的名称。"Pass your data here..."
是通过以下方式传递到 iOS 的数据messageHandler
信息。
在你的 iOS 代码中:
使用 WKUserContentController 添加消息处理程序add(_:name:)
方法如下:
webView.configuration.userContentController.add(self, name: "messageHandler")
最后,在你的ViewController
代码实现WKScriptMessageHandler的userContentController:didReceiveScriptMessage:
方法如:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "messageHandler" {
// Your Message handler code goes here...
}
根据 Apple 文档add(_:name:)
method:
添加名称为 name 的脚本消息处理程序
导致 JavaScript 函数 window.webkit.messageHandlers.name.postMessage(messageBody) 在使用用户内容控制器的所有 Web 视图的所有框架中定义。
苹果文档链接 https://developer.apple.com/documentation/webkit/wkusercontentcontroller/1537172-add