检测WKWebview中的按钮点击

Put*_*tte 5 javascript ios swift wkwebview

在我的 IOS 应用程序中,我创建了一个不属于我自己的网站的WKWebview 。所以在我的里面:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
Run Code Online (Sandbox Code Playgroud)

我有几个.evaluateJavascript,可以将数据添加到文本字段、删除网站上的元素等。

但我正在尝试添加一个.evaluateJavascript(或其他)来识别网站上的按钮点击。

我尝试通过执行以下代码来添加它:

bookingView.evaluateJavaScript("document.getElementById('optional_button').onclick();") { (key, err) in
        if let err = err{
            print(err.localizedDescription)
        }
        else{
            print("You tapped the button!")
        }
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。每次我打开 WebView 时,应用程序都会打印出“您点击了按钮”,即使我没有打开。

那么,我可以用evaluateJavascript检测按钮点击吗?

小智 7

你可以捕获 url 并对其做出反应

    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        decisionHandler(.allow)
        guard let urlAsString = navigationAction.request.url?.absoluteString.lowercased() else {
            return
        }

        if urlAsString.range(of: "the url that the button redirects the webpage to") != nil {
        // do something
        } 
     }
Run Code Online (Sandbox Code Playgroud)