你可以使用 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 的代理,并将其添加到 userContentControlleradd(_: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 判断有没有js调用 _protoquerencaozuo 这个方法object-c

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

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