我有一個應用程序與標準視圖控制器上有多個按鈕。每個按鈕鏈接到一個具有獨特UIWebView的獨立視圖控制器。每個UIWebView都實現了didFailLoadWithError,它似乎工作正常:當我關閉wifi,並嘗試從主視圖控制器頁面加載UIWebView時,我正確地從didFailLoadWithError獲取錯誤消息。當我打開wifi並加載UIWebView時,它工作正常 - 沒有錯誤。但是,當我點擊該UIWebView頁面中的鏈接時,我又收到了didFailLoadWithError錯誤。更有趣的是,我清除了錯誤消息,並且新頁面仍然從我剛剛點擊的鏈接加載,所以我知道連接是好的。這裏是我的實現...有沒有人知道強制didFailLoadWithError只能在第一次加載時運行一次的方法,並且在驗證Web連接是好的時候再次禁止它再次運行?didFailLoadWithError錯誤地報告沒有連接
@synthesize webView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Network Alert" message:@"No Internet Connection - Please Check Your Network Settings and Try Again" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: @"http://www.site.com/index.html"]]];
[webView addSubview:activity];
timer=[NSTimer scheduledTimerWithTimeInterval:(1.0/2.0)
target:self selector:@selector(loading) userInfo:nil repeats:YES];
}
- (void)loading {
if (!webView.loading)
[activity stopAnimating];
else
[activity startAnimating];
}
我測試了一下,發現問題不在代碼或didFailLoadWithError例程中,但它是由特定鏈接引起的。出於某種原因,所有嘗試從UIWebView遵循以下鏈接都將導致didFailLoadWithError,但所有「正常」鏈接不會導致錯誤。這裏是有問題的鏈接:http://p.incmedia.incmediaservices.netdna-cdn.com/vod/incmedia.incmediaservices/003/800k/FTT_0014.mov – WarrenD
我有同樣的問題,找到解決方案嗎? – John