IOS中如何判斷當前網絡狀態 – iPhone手機開發技術文章 iPhone軟體開發教學課程

眾所周知,我們在開發APP時,涉及網絡連接的時候,都會想著提前判斷一下當前的網絡連接狀態,如果沒有網絡,就不再請求url,省去不必要的步驟,所以,這個如何判斷?其實很簡單。

前提:工程添加:SystemConfiguration.framework framework

去蘋果API裡搜索Reachability,下載demo,把demo裡的Reachability.h和Reachability.m拖到自己的工程裡

然後在需要判斷的類中包含頭文件:

#import "Reachability.h"  

【如果你使用的ASIHTTPRequest類庫,那麼直接import Reachbility.h就可以瞭,ASIHTTP類庫裡包含Reachbility.h和.m】

-(BOOL) isConnectionAvailable{  
  
    BOOL isExistenceNetwork = YES;  
    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];  
    switch ([reach currentReachabilityStatus]) {  
        case NotReachable:  
            isExistenceNetwork = NO;  
            //NSLog(@"notReachable");  
            break;  
        case ReachableViaWiFi:  
            isExistenceNetwork = YES;  
            //NSLog(@"WIFI");  
            break;  
        case ReachableViaWWAN:  
            isExistenceNetwork = YES;  
            //NSLog(@"3G");  
            break;  
    }  
      
    if (!isExistenceNetwork) {  
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];//MBProgressHUD為第三方庫,不需要可以省略或使用AlertView  
        hud.removeFromSuperViewOnHide =YES;  
        hud.mode = MBProgressHUDModeText;  
        hud.labelText = @"當前網絡不可用,請檢查網絡連接";  //提示的內容
        hud.minSize = CGSizeMake(132.f, 108.0f);  
        [hud hide:YES afterDelay:3];  
        return NO;  
    }  
      
    return isExistenceNetwork;  
}  

然後在需要判斷的地方直接:[self isConnectionAvailable] ,大傢看懂瞭吧,就這麼簡單。

所以舉一反三,如果你不單單是判斷是否網絡通暢,而是要判斷是WIFI或3G,再寫一個isEnableWIFI的方法,具體判斷方法就不用再贅述瞭吧,currentReachabilityStatus判斷之。

發佈留言