Я искал и не нашел решения этой проблемы, поэтому, надеюсь, кто-то может помочь.
У меня есть UIWebView, который вызывается, когда пользователь нажимает кнопку. Все работает отлично, если только вы не учитываете поведение, когда телефон не подключен к данным.
При попытке открыть UIWebView в первый раз с телефоном в режиме полета или без подключения для передачи данных:
- UIWebView начинает загружаться
- Не удается загрузить
Как только UIWebView выделен и не загружается в первый раз, нажатие кнопки обновления, связанной с IBAction (которая вызывает [webView reload]), вызывает:
- Независимо от того, есть ли у телефона подключение для передачи данных после сбоя начальной загрузки, вызывается обновление IBAction, но мои NSLogs говорят мне, что ни webViewDidStartLoad, ни webViewDidFinishLoad, ни webView…didFailLoadWithError не вызываются.
Если я оставлю приложение запущенным и включу подключение для передачи данных к устройству (например, выключу режим полета), затем вернусь в свое приложение и нажму кнопку обновления, [webView reload] вызывается, но webViewDidStartLoad (и, следовательно, webViewDidFinishLoad) не звонил.
Вот соответствующий код:
Чтобы вызвать webView:
-(IBAction)loadWebView {
webView = [[UIWebView alloc] init];
webView.scalesPageToFit = YES;
[webView setDelegate:self];
NSString *urlAddress = @"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
}
Перезагрузить:
-(IBAction)reloadWebView{
[webView reload];
NSLog(@"RELOAD");
}
webViewDidStart, DidFinish, didFailLoadWithError:
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"START LOAD");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"FINISH LOAD");
}
- (void)webView:(UIWebView *) webView didFailLoadWithError:(NSError *)error
{
NSLog(@"DID FAIL");
}
Мысли?