IOS監聽網絡狀態&以及方法沖突解決

首先,項目要在App打開時監聽網絡狀態,Wi-Fi和運營商有網絡時開啟MQTT連接。利用AFN實現網絡狀態監聽。

1、在AppDelegate.m中引入#import "AFNetworking.h"

枚舉網絡狀態

typedef enum : NSUInteger {

unknown,

notConnect,

wwan,

wifi,

} Networkstatus;

開啟網絡監聽

[self networkMonitoring];//開啟網絡監聽

#pragma mark - NetworkMonitoring

-(void)networkMonitoring{

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

[manager startMonitoring];//開啟監聽

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

switch (status) {

case AFNetworkReachabilityStatusUnknown:

self.networkstatus = unknown;

NSLog(@"當前網絡未知");

break;

case AFNetworkReachabilityStatusNotReachable:

self.networkstatus = notConnect;

NSLog(@"當前無網絡連接");

break;

case AFNetworkReachabilityStatusReachableViaWiFi:

self.networkstatus = wifi;

//連接 mqtt服務器

[self connnetMQTTServer];

NSLog(@"當前使用無線網絡");

break;

case AFNetworkReachabilityStatusReachableViaWWAN:

self.networkstatus = wwan;

//連接 mqtt服務器

[self connnetMQTTServer];

NSLog(@"當前使用運營商網絡");

break;

default:

break;

}

}];

}

到這為止已經可以監聽網絡方法,但是因為監聽是耗時操作,如果在首頁viewController中同樣寫這個方法當返回時只走一個viewController,在Appdelegete的方法不會 執行

因此,在別的頁面用通知監聽狀態改變

//-(void)viewDidLoad 中

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(AFNNetWorkStatusChanged:) name:AFNetworkingReachabilityDidChangeNotification object:nil];

- (void)AFNNetWorkStatusChanged:(NSNotification *)notice{

NSDictionary *dic = notice.userInfo; //獲取網絡狀態

NSInteger status = [[dic objectForKey:@"AFNetworkingReachabilityNotificationStatusItem"] integerValue];

if(status == AFNetworkReachabilityStatusNotReachable) {

//無網絡連接

[self.locService stopUserLocationService];//停止定位

UIAlertView *alertV = [[UIAlertView alloc] initWithTitle:@"溫馨提示" message:@"當前暫無網絡連接" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles: nil];

[alertV show];

}else if (status == AFNetworkReachabilityStatusReachableViaWiFi || status == AFNetworkReachabilityStatusReachableViaWWAN) { }else{

}

}


—— end ——

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容