Javascript 在WKWebview中检测按钮单击

Javascript 在WKWebview中检测按钮单击,javascript,ios,swift,wkwebview,Javascript,Ios,Swift,Wkwebview,在我的IOS应用程序中,我创建了一个不属于我自己的网站的WKWebview。所以在我的内心: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 我有几个.evaluateJavascript,可以向文本字段添加数据,删除网站上的元素等 但我正在尝试添加一个.evaluateJavascript(或其他)来识别网站上的按钮点击 我尝试通过执行以下代码来添加这一点: bookingView.evalu

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

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
我有几个.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!")
        }
但这不起作用。每次我打开网络视图时,应用程序都会打印出“你点击了按钮”,即使我没有


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

您可以捕获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
        } 
     }
简单的解决方案:

webView.evaluateJavaScript("document.getElementsByTagName('input')[0].click()", completionHandler: nil)

其中,用网页中的按钮索引替换0。

@user1374我已经尝试过了。。不起作用:/@Putte你知道答案了吗?如果有,请分享here@muthukumaresh我不。。对不起。不再有项目,但每个用户的链接可能不同。因为这是一个预订系统,所以我猜每个用户的预订ID都会不同。。。嗯,你知道吗?你的意思是所有的url都会不同,或者只是参数中的预订id?没错。因为它通过了某种身份证。“URL/bid=17642911/”听着,如果我没弄错,你仍然可以使用这个方法。。如果您有这样一个url:您仍然可以捕获此url: