Fra*_* G. 6 ios swift wkwebview
这个问题与以下内容相同:WKWebView捕获HTTP错误代码 ; 遗憾的是,Obj-C中的方法不适用于Swift 4,因此引用WKNavigationResponse.response的不再是类型,NSHTTPURLResponse因此它没有http状态代码.
但问题仍然是相同的:我需要获取答案的http状态代码,以检测是否加载了预期的页面.
请注意,如果网络问题(即服务器脱机),webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error)则不会调用404代理; 将func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)被改为调用.
非常感谢你的回答.
小智 14
使用a WKNavigationDelegate,WKWebView您可以在每次收到响应时从响应中获取状态代码.
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse,
decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
if let response = navigationResponse.response as? HTTPURLResponse {
if response.statusCode == 401 {
// ...
}
}
decisionHandler(.allow)
}
Run Code Online (Sandbox Code Playgroud)