UIWebview медленная загрузка защищенной страницы - PullRequest
3 голосов
/ 11 января 2012

У меня есть сайт, который я загружаю с помощью UIWebView, с некоторыми проблемами при загрузке, когда он защищен с помощью Basic Authtype of Apache:

NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:pass@mysite.mydomain.com"];
NSURL *url = [NSURL URLWithString:myUrlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
[webView loadRequest:requestObj];

Первоначальная загрузка работает в большинстве случаев, но иногда, особенно при перезагрузкеприложения обратный вызов

- (void)webViewDidFinishLoad:(UIWebView *)webViewloc

не достигнут, и он также не работает на

-(void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error

Если я использую другой сервер без .htaccess для защиты страницы, все это работаетхорошо.

Я также вижу в журнале доступа, что иногда он просто перестает загружаться со страницы.

Это как-то связано с cachePolicy или timeoutInterval?

Ответы [ 2 ]

0 голосов
/ 14 марта 2012
NSString * myUrlAddress = [NSString stringWithFormat:@"http://user:pass@mysite.mydomain.com"];
NSURL *url = [NSURL URLWithString:myUrlAddress];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
0 голосов
/ 24 января 2012

Вы можете попытаться управлять запросом аутентификации, исходящим с сервера, самостоятельно, так как кажется, что UIWebView не может с ним справиться.

Для этого требуется настроить собственный NSURLRequest / Connection и обработать запросв методе делегата connection:didReceiveAuthenticationChallenge перед попыткой загрузить фактическую HTML-страницу в ваш UIWebView.

. Здесь вы можете найти полный пример кода для запроса GET.Вы также можете подключиться к сторонней сетевой инфраструктуре, которая упрощает обработку сообщений и вызовов (например, ASIHTTPRequest , хотя теперь он находится в «замороженном» состоянии и работает хорошо; или AFNetworking)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...