我正在为我的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
网址。
答案 0 :(得分:1)
我想您会发现,如果使用的委托函数看上去与您使用的委托函数相同,则它将被调用,除了“ decisionHandler”是一个以WKNavigationActionPolicy作为参数的函数。