您可以使用WKUserContentControlleraddScriptMessageHandler: 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);

最后,在ScriptMessageHandleruserContentController(_:didReceive:)方法中,您可以获取到JavaScript传递的token,并进行相应的处理。

希望这可以帮助到您

ios 判断wkwebview 检测 token

原文地址: http://www.cveoy.top/t/topic/iTkF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录