ios 判断wkwebview 检测 token
您可以使用WKUserContentController的addScriptMessageHandler: name:方法来注册一个WKScriptMessageHandler的实例,然后在JavaScript中调用这个实例的方法来传递token。
首先,在您的iOS项目中创建一个遵循WKScriptMessageHandler协议的类,例如ScriptMessageHandler:
import WebKit
class ScriptMessageHandler: NSObject, WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "tokenHandler" {
if let token = message.body as? String {
// 这里可以获取到JavaScript中传递的token
print("Received token: \(token)")
}
}
}
}
然后,在您的WKWebView初始化的地方,将这个ScriptMessageHandler注册到WKUserContentController中:
let userContentController = WKUserContentController()
let scriptMessageHandler = ScriptMessageHandler()
userContentController.add(scriptMessageHandler, name: "tokenHandler")
let configuration = WKWebViewConfiguration()
configuration.userContentController = userContentController
let webView = WKWebView(frame: .zero, configuration: configuration)
接下来,在您的网页中的JavaScript代码中,通过webkit.messageHandlers.tokenHandler.postMessage(token)来传递token给iOS:
var token = "your_token_value";
webkit.messageHandlers.tokenHandler.postMessage(token);
最后,在ScriptMessageHandler的userContentController(_:didReceive:)方法中,您可以获取到JavaScript传递的token,并进行相应的处理。
希望这可以帮助到您
原文地址: http://www.cveoy.top/t/topic/iTkF 著作权归作者所有。请勿转载和采集!