私は検索しましたが、これに対する解決策が見つからなかったので、誰かが助けてくれることを願っています.
ユーザーがボタンを押したときに呼び出される UIWebView があります。電話がデータ接続されていないときの動作を説明しない限り、すべてがうまく機能します.
スマートフォンを機内モードまたはデータ接続なしで初めてUIWebView を開こうとすると、次のようになります。
- UIWebView の読み込みが開始されます
- 読み込みに失敗する
UIWebView が割り当てられ、初めて読み込みに失敗した場合、IBAction ([webView reload] を呼び出す) にリンクされた更新ボタンを押すと、次のようになります。
- 初期ロードが失敗した後に電話機にデータ接続があるかどうかに関係なく、refresh 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");
}
考え?