2015-05-27 2 views
1

Я использую UIWebView в игре, чтобы отобразить форму поддержки клиентов. Я заметил, что у меня проблема с закрытием веб-браузера, если сервер возвращает ошибку 503 (код состояния HTTP, отправленный с балансировщика нагрузки)UIWebView получить код статуса http с загруженной страницы

Есть ли способ легко получить этот статус http? могу ли я сделать некоторую настройку, чтобы получить код didFailWithError, когда код статуса http не 200?

загрузки кода

UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]; 

NSURL *nsURL = [NSURL URLWithString:url]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:nsURL]; 

webView.opaque = YES; 

webView.userInteractionEnabled = YES; 

[webView loadRequest:request]; 

webView.delegate = self; 

closableWebViewController = [[UIViewController alloc] init]; 

[closableWebViewController.view setFrame:self.view.frame]; 

[closableWebViewController.view addSubview:webView]; 

[self presentViewController:closableWebViewController animated:YES completion:nil]; 

этот метод делегата не называется

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
NSLog(@"webview error %@",error); 

if (closableWebViewController) 
{ 
    NSLog(@"closing webview"); 
    [closableWebViewController dismissViewControllerAnimated:TRUE completion:^{ 
     closableWebViewController = nil; 
     NSLog(@"webView closed"); 
    }]; 

} 
} 

ответ

1

Вы не можете легко добраться до него, но есть хороший трюк, который хорошо документирован здесь:

How to detect and handle HTTP error codes in UIWebView?

+0

Да, я проверил эту страницу, но было бы неплохо в моей ситуации найти способ вызова делегата didFailWithError. Я могу попросить моего администратора sys изменить способ сброса балансировки нагрузки. возможно, если я удалю весь вывод html с страницы с ошибкой, он исправит проблему. –

+0

Да, это решит проблему. Другой вариант - использовать NSUrlConnection и заполнять UIView вручную, когда он будет успешным. – Mika

+0

Я, наконец, использовал еще один трюк (выборка содержимого html через javascript), но эта информация явно отсутствует в SDK ios. –