我正在WKWebView
中加载一个网址请求。
Charles告诉我Response Code: 503 Error
很好,因为它不可用,但是
webView(_:didFail:withError:)
webView(_:decidePolicyFor:decisionHandler:)
函数从不调用。
我应该如何处理此错误响应?我认为代表设置正确。
import UIKit
import WebKit
class WebKitViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
var urlRequest: URLRequest?
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
if let urlRequest = urlRequest {
webView?.load(urlRequest)
}
}
override func loadView() {
super.loadView()
webView = WKWebView(frame: .zero)
view.addSubview(webView)
webView.uiDelegate = self
//constraints
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
}
func webView(_ webView: WKWebView, didFinishProvisionalNavigation navigation: WKNavigation!) {
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
}
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
//not called while request gets 503 error
}
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
//not called while request gets 503 error
}
}
编辑:func webView(_ webView: UIWebView, didFailLoadWithError error: Error)
完全是错误的。跳过那个。
答案 0 :(得分:1)
对于您的一种方法,您使用UIWebView
而不是WKWebView
。考虑添加以下方法:
func webView(WKWebView, didFail: WKNavigation!, withError: Error)
func webView(WKWebView, didFailProvisionalNavigation: WKNavigation!, withError: Error)
答案 1 :(得分:0)
使用此代码检查错误
optional func webView(_ webView: WKWebView,
decidePolicyFor navigationResponse: WKNavigationResponse,
decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void)
它将为您提供NavigationResponse 并检查它是503还是401或其他任何值,并进行相应处理。
检查此链接以了解更多信息 Link
希望有帮助!