一、利用afn框架
//1.建立網路狀態監測管理者
afnetworkreachabilitymanager *manager = [afnetworkreachabilitymanager sharedmanager];
//2.監聽改變
[manager setreachabilitystatuschangeblock:^(afnetworkreachabilitystatus status)
}];[manager startmonitoring];//開始監聽
}
二、利用系統狀態列判斷網路狀態
int type = 0;
for (id child in children)
}switch (type)
警告:此方法存在一定的侷限性,比如當狀態列被隱藏的時候,無法使用此方法。
三、通過reachability框架
reachability是乙個在ios系統環境下檢測ios裝置當前的網路環境的庫。它的主要功能是監測三種網路環境:2g/3g/4g、wifi網路、無網路。在應用的執行狀態下,實時監測網路連線方式的變更,及時給出通知。
reachability的使用
1.直接獲取當前網路環境:
reachability*reach=[reachability reachabilitywithhostname:@"www.hcios.com"];
//2.判斷當前的網路狀態
switch([reach currentreachabilitystatus])
//根據currentreachabilitystatus方法獲取當前的網路環境,reachableviawwan表示移動資料網路,reachableviawifi表示wifi網路,notreachable表示沒有接入網路。
通知的方式獲取當前網路環境:
reachability *reach=[reachability reachabilitywithhostname:@"www.hcios.com"];
//通知中心註冊通知
[[nsnotificationcenter defaultcenter] addobserver:self selector:
@selector(reachabilitychanged:)name:kreachabilitychangednotification object:nil];
//reachability例項呼叫startnotifier方法啟動網路狀態監測
[reach startnotifier];
//收到通知呼叫的方法
-(void)reachabilitychanged:(nsnotification*)notificationelseelse if([reach currentreachabilitystatus]==reachableviawwan)
}}
通過通知的方式使用reachability是在程式中經常使用的,reachability可以在使用者的網路狀態發生改變時,及時給出通知提醒,防止資料流量的快速流失,在實際的專案應用中是十分常見的。
ios 快速判斷當前網路狀態 三種方法
1 利用afn框架 1.建立網路狀態監測管理者 afnetworkreachabilitymanager manager afnetworkreachabilitymanager sharedmanager 2.監聽改變 manager setreachabilitystatuschangebloc...
iOS 判斷當前網路狀態的三種方法
reachability 在 reachability標頭檔案中我們可以看到無網路,wifi和蜂窩網三個網路狀態的列舉值,如下 typedef enum nsinteger networkstatus 1 獲取網路狀態 在ios 7之前,當使用者網路為蜂窩網路時,是沒法判斷3g 4g等網路型別的,i...
iOS 判斷當前網路狀態
1.如果只判斷當前是否是無網的狀態 if reachability reachabilityforlocalwifi currentreachabilitystatus notreachable reachability reachabilityforinternetconnection curre...