2015-10-04 23 views
12

quando torno qualsiasi errore HTTP dalla mia pagina (attualmente 401, ma ho provato anche con 404 e così via)WKWebView

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

i callback delegato della WKWebView non tornano un errore

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

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

Come rilevare tali errori?

risposta

27

La chiave è stato quello di attendere la risposta e quindi ispezionare l'oggetto, nessun errore è chiamato codice 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); 
}