首页 > 解决方案 > 我没有在 WKWebview 中获得一个网页按钮的点击事件,以及如何使用 java 脚本将点击事件添加到 wkwebview

问题描述

如果没有用于按钮操作的事件,我已经发布了我使用的委托方法。如何使用 javascript 添加该事件。如何在我的视图控制器中使用功能主义者。

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        print(#function)
        guard let url = navigationAction.request.url else {
            decisionHandler(.allow)
            return
        }
        if url.absoluteString.contains("ios-development-course") {
            // this means login successful
            decisionHandler(.cancel)
        }
        else {
            decisionHandler(.allow)
        }
    }

标签: iosswift

解决方案


当您单击基本上是 Web 视图中的链接的按钮时,导航发生在 Web 视图中。

您可以使用委托方法来允许或取消该导航。

public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

  var shouldLoad = true
  if navigationAction.navigationType == .linkActivated.  
      //user clicked button on web view   
      decisionHandler(shouldLoad ? .allow : .cancel)
  }
}

推荐阅读