2015-10-04 19 views
12

kiedy wrócę żadnego błędu HTTP z mojej strony (obecnie 401, ale próbowałem też ze 404 i tak dalej)WKWebView haczyk HTTP kody błędów

http://min60.com/__personal/e401.php

wywołania zwrotne delegat WKWebView nie wracaj błąd

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error 

- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error { 

Jak złapać takie błędy?

Odpowiedz

27

Kluczem było czekać na odpowiedź, a następnie skontrolować obiekt, żaden błąd nazywa się na kodzie http

- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { 

    if ([navigationResponse.response isKindOfClass:[NSHTTPURLResponse class]]) { 

     NSHTTPURLResponse * response = (NSHTTPURLResponse *)navigationResponse.response; 
     if (response.statusCode == 401) { 

      // here we go 

     } 

    } 
    decisionHandler(WKNavigationResponsePolicyAllow); 
}