WKWebView不响应503错误

时间:2018-07-31 08:27:20

标签: ios swift error-handling webkit wkwebview

我正在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)完全是错误的。跳过那个。

2 个答案:

答案 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

希望有帮助!