現(xiàn)在開發(fā)的項(xiàng)目中,基本上都會涉及網(wǎng)絡(luò)連接,那么項(xiàng)目中處理好網(wǎng)絡(luò)連接狀態(tài)就很有必要了。但是如果每一次的網(wǎng)絡(luò)請求前都進(jìn)行一次當(dāng)前的網(wǎng)絡(luò)狀態(tài)查詢顯然是不科學(xué)的,所以就需要來設(shè)置一個(gè)全局的網(wǎng)絡(luò)查詢方法,對當(dāng)前的網(wǎng)絡(luò)連接狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)聽。
蘋果給出了一個(gè)第三方Reachability來監(jiān)聽網(wǎng)絡(luò)狀態(tài),網(wǎng)上很多的第三方也是在此基礎(chǔ)上封裝而來。這里使用的是 AFNetworking 3.x中 AFNetworkReachabilityManager檢測。AFNetworkReachabilityManager是AFNetworking中,獨(dú)立的模塊,用來實(shí)時(shí)監(jiān)測網(wǎng)絡(luò)變化的。
主要可以監(jiān)測出的狀態(tài)有:1、無網(wǎng)絡(luò) 2、Wifi網(wǎng)絡(luò) 3、蜂窩網(wǎng)絡(luò) 4、未知網(wǎng)絡(luò)
使用方法:在Appdelegate文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
在基類的BaseViewController,
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifi:) name:AFNetworkingReachabilityDidChangeNotification object:nil];
}中注冊通知
- (void)notifi:(NSNotification *)noti{
//自定義代碼,顯示提示語就行
}
項(xiàng)目中使用AFNetworkReachabilityManager的情況有以下幾種,根據(jù)不同情況提示不同的提示語:
(1)進(jìn)行網(wǎng)絡(luò)請求前,檢查網(wǎng)絡(luò)狀態(tài)
(2)網(wǎng)絡(luò)切換過程中
(3)正常使用中,突然斷網(wǎng)了