2012-12-12 43 views
0

即使網站載入網站,該網頁查看失敗錯誤仍顯示警告彈出窗口。我相信我需要延遲這種方法才能使其工作。這樣做的最佳方法是什麼?xcode webview錯誤不起作用

- (void)webView:(UIWebView *)webViewfail didFailLoadWithError:(NSError *)error 
{ 
    if([webViewfail isEqual:webview]) { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Failed" message:@"Check your Internet connection before refreshing." 
                delegate:webview 
              cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 

這裏是我正在加載網站

- (void)viewDidLoad 
{ 
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.blabla.com"]]]; 
} 
+0

請出示的代碼你在哪裏設置與負載的要求。也只是因爲它未能加載並不意味着互聯網是責怪。您應該檢查返回的錯誤對象以查看真實原因。 –

+0

@moo不,你不必拖延任何東西。你的問題在別處。 – trudyscousin

+0

你打電話給[super viewDidLoad]; ? – Winston

回答

1

問題是最有可能是一個錯誤-999通常發生在從網頁上的東西並不正確加載或用戶試圖向後導航而頁面仍在加載。經過一些研究後,我發現並用它來防止NetworkAlert每次都彈出,但在沒有網絡時仍會彈出。

-(void)webView:(UIWebView *)webBlog didFailLoadWithError:(NSError *)error{ 

if ([error code] != -999) { 
    NSLog(@"Could not load the dumb webPage"); 
    //show error alert, etc. 
    [self showNoNetworkAlert]; 
    }else{ 

NSLog(@"Could not load the dumb web page...just might blame user!"); 
    } 
} 

- (void) showNoNetworkAlert{ 
UIAlertView *baseAlert = [[UIAlertView alloc] 
          initWithTitle:@"No Network"  message:@"A network connection is required. Please verify your network settings and try again." 
          delegate:nil cancelButtonTitle:nil 
          otherButtonTitles:@"Dismiss", nil]; 
[baseAlert show]; 
} 

希望這可以幫助別人......