你可以使用 WKScriptMessageHandler 协议来监听 JavaScript 对象调用 Objective-C 方法的请求。下面是一个简单的示例,演示如何在 iOS 的 WKWebView 中判断是否有 JavaScript 调用了名为 '_proto.querencaozuo' 的方法:

首先,创建一个遵循 WKScriptMessageHandler 协议的对象,并实现代理方法 'userContentController(_:didReceive:)':

import WebKit

class MyScriptMessageHandler: NSObject, WKScriptMessageHandler {
    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if message.name == '_proto' && message.body as? String == 'querencaozuo' {
            // JavaScript 调用了 '_proto.querencaozuo' 方法
            // 在这里执行你想要的操作
            print('JavaScript 调用了 '_proto.querencaozuo' 方法')
        }
    }
}

然后,在创建 WKWebView 时,将该对象指定为 WKUserContentController 的代理,并将其添加到 'userContentController' 的 'add(_:name:)' 方法中:

let configuration = WKWebViewConfiguration()
let userContentController = WKUserContentController()
let scriptMessageHandler = MyScriptMessageHandler()

userContentController.add(scriptMessageHandler, name: '_proto')
configuration.userContentController = userContentController

let webView = WKWebView(frame: .zero, configuration: configuration)

现在,当 JavaScript 调用 'proto.querencaozuo' 方法时,'MyScriptMessageHandler' 对象的 'userContentController(:didReceive:)' 方法将被调用,并你可以在其中执行你想要的操作。

注意:确保在 JavaScript 中正确调用了 '_proto.querencaozuo' 方法,并且 WKWebView 加载的网页中已经注入了相应的 JavaScript 代码。

iOS WKWebView 如何判断 JavaScript 是否调用了特定方法

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

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