你可以使用Javascript接口:
首先,启用 javascripts 并将 WKScriptMessageHandler 委托添加到您的 ViewController。
if #available(iOS 14.0, *) {
webView.configuration.defaultWebpagePreferences.allowsContentJavaScript = true
} else {
webView.configuration.preferences.javaScriptEnabled = true
}
如果您想从网站中获取一些数据,请将 UserContentController 添加到您的 webView 配置中:
webView.configuration.userContentController.add(self, name: "getData")
如果您的应用收到 getData 消息,您可以处理它:
extension ViewController: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "getData" {
print(message.body) // <- Here you get the body if the message
//Do something with the datas
}
}
}
在网站(JS)上,可以简单的调用
window.webkit.messageHandlers.getData.postMessage('anyString');
如果你想用 Swift 在网站上执行 JS 代码,也很简单:
func sendJS(param1: String) {
let javascript = "callThisFunction('\(param1)')"
webView.evaluateJavaScript(javascript, completionHandler: nil)
}