私のページからhttpエラーを返すとき(現在は401ですが、404などでも試しました)
http://min60.com/__personal/e401.php
wKWebViewのデリゲートコールバックがエラーを返さない
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error
- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error {
そのようなエラーをキャッチする方法は?
重要なのは、応答を待ってからオブジェクトを検査することでした。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);
}