单击Webview中的完成按钮后,未调用WKWebview导航响应方法

时间:2019-04-29 00:56:56

标签: ios swift webview wkwebview

我正在为我的Swift应用程序使用WKWebview。由于某些原因,当用户单击WKWebview中的完成按钮时,WKWebView导航响应委托方法未得到调用。当我在网络上尝试相同的操作时,它会重定向到正确的网址。

到目前为止,我已经尝试在WKWebview中配置WKWebView之前清除viewDidLoad缓存,或者收到内存警告。另外,请确保我的info.plist允许任意负载,并且确保NSExceptionAllowsInsecureHTTPLoads用于测试。尽管尝试了这些事情进行调试,但是导航响应委托方法仍然没有被调用。

func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
        if let webviewUrl = webView.url {
            let urlString = webviewUrl.absoluteString
            if urlString.contains("\(myUrlComponents)") {
                self.navigationController?.popViewController(animated: true)
                decisionHandler(.cancel)
                return
            }
        }
        decisionHandler(.allow)
    }

当导航响应方法被调用并返回上一屏幕时,我希望能够检测到特定的WKWebview网址。

1 个答案:

答案 0 :(得分:1)

我想您会发现,如果使用的委托函数看上去与您使用的委托函数相同,则它将被调用,除了“ decisionHandler”是一个以WKNavigationActionPolicy作为参数的函数。