デリゲートメソッドwebView:didFailLoadWithError:にエラー処理(アラート表示)をいれたのですが、stopLoadingで読み込みをキャンセルした場合もこれが呼ばれてしまう。
さぁ困ったぞ、と1日経って良く見てみたら、NSErrorでエラー内容が取れるではないかと。
このリファレンスの「URL Loading System Error Codes」という項目にNSURLErrorDomainのエラー一覧があります。
NSURLErrorCancelledのときはアラート表示をしないという処理で大丈夫そうです。
以下ソース。
// エラー
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
LOG(@"UIWebView: error");
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
// stopLoadingでキャンセルされた場合はアラートを表示しない
if (!( [error.domain isEqualToString:NSURLErrorDomain]
&& error.code == NSURLErrorCancelled)) {
// アラート表示
[self showAlert];
}
[self updateButtonStatus];
}
できました。良さそうです。

0 件のコメント:
コメントを投稿