2012-02-01 29 views
2

我一直在通過論壇搜索如何檢查我的ipad應用程序中是否有互聯網。我只是與其他視圖控制器創建了一個簡單的webview項目,並且當互聯網不可用時,我需要顯示UIAlert消息。在我的情況下,它是當我運行應用程序時顯示消息。當我使用互聯網運行應用程序,然後停用互聯網時,它不顯示UIAlert消息,也就是說,如果我在視圖之間切換,它不再顯示沒有互聯網連接。使用ios5測試iPad應用程序上的互聯網連接

我跟隨在我的項目實施是這樣的:(對不起我的錯,這是我跟着鏈接)http://mozymac.com/forums/f54/how-check-if-there-internet-connection-iphone-os-devices-595/ [這是編輯後的新問題]

除此之外,我通過前面的一些問題去在Stackoverflow論壇比如:How to check for an active Internet connection on iOS or OSX?

但是每個人都有自己的版本。如果任何人有更多更新的方法爲ios5,xcode 4.2.1如何完成這一點,那麼將有助於我。

謝謝

回答

2

有你爲什麼要檢查之前,實際上互聯網連接的原因試圖在UIWebView中加載請求?

最佳做法是剛開始加載,並使用您的UIWebViewDelegate/NURLConnectionDelegate來檢查NSError,看看有什麼不對。如果出現網絡故障,您將收到一個域名爲NSURLErrorDomain的錯誤。錯誤代碼將指出問題所在,請參閱NSError codes枚舉。

而且是在第一個錯誤開始的可達性時看到了互聯網連接再次變得可用。或者更簡單,只需讓用戶重試即可。使用Reachability代碼實際上會導致一些開銷。檢查互聯網是否可用需要時間,您也可以使用它來建立實際的連接。

由於您使用的是UIWebView你應該實現通知錯誤以下委託方法。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { 
    if (![[error domain] isEqualToString:NSURLErrorDomain]) { 
     // not a nsurl error, take other appropriate action 
     return; 
    } 

    NSInteger code = [error code]; 
    // show appropriate error to user, based on code 
} 

在這個委託方法中,你應該做任何事情來達到你想要的。您可以自己重試請求,向用戶顯示消息或使用Apple提供的Reachability示例中的代碼開始偵聽可達性更改。

+0

感謝您的回覆,是否可以提供如何使用此示例代碼以便更好地理解 – 125369 2012-02-01 12:29:11

+0

添加了UIWebView錯誤委託示例。 – 2012-02-01 12:51:11

+0

感謝Joris提供的例子 – 125369 2012-02-01 13:45:18

1
檢查互聯網連接

最好的辦法是Reachibility應用

link

否則

+ (BOOL)isNetworkAvailable 
{ 
    CFNetDiagnosticRef diag;   
    diag = CFNetDiagnosticCreateWithURL (NULL, (CFURLRef)[NSURL URLWithString:@"www.apple.com"]); 

    CFNetDiagnosticStatus status; 
    status = CFNetDiagnosticCopyNetworkStatusPassively (diag, NULL);   

    CFRelease (diag); 

    if (status == kCFNetDiagnosticConnectionUp) 
    { 
     //NSLog (@"Connection is up"); 
     return YES; 
    } else { 
     NSLog (@"Connection is down"); 
     return NO; 
    } 
} 
+0

它已經過時。 – 2014-03-31 12:21:03

+0

它不適用於iPv6網絡。 – Suresh 2016-06-29 11:36:45

相關問題