iOS網絡監控:BMReachability
1. What's BMReachability?
BMReachability是基于AFNetworking的Reachability類封裝的監聽網絡狀態變化的組件。 它在AF提供的無網絡/wifi/蜂窩網絡判斷的基礎上,增加了對2G/3G/4G網絡的判斷。
typedef NS_ENUM(NSInteger, BMNetworkReachabilityStatus) {
BMNetworkReachabilityStatusUnknown = -1,
BMNetworkReachabilityStatusNotReachable = 0,
BMNetworkReachabilityStatusReachableViaWWAN = 1,
BMNetworkReachabilityStatusReachableViaWiFi = 2,
BMNetworkReachabilityStatusReachableVia2G = 3,
BMNetworkReachabilityStatusReachableVia3G = 4,
BMNetworkReachabilityStatusReachableVia4G = 5,
};
2. 系統要求:
最低要求支持 iOS 7.0 版本
3. How To Use?
在你的類中導入BMReachability.h頭文件,增加BMAddNetworkStatusObserver(self)監聽,并實現 BMNetworkStatusProtocol,在監聽對象銷毀時請注意移除監聽 BMRemoveNetworkStatusObserver(self)
Example:
- (void)dealloc{
BMRemoveNetworkStatusObserver(self);
}
- (void)viewDidLoad {
[super viewDidLoad];
BMAddNetworkStatusObserver(self);
}
#pragma mark - BMNetworkStatusProtocol
- (void)networkStatusDidChangedFromStatus:(BMNetworkReachabilityStatus)fromStatus
toStatus:(BMNetworkReachabilityStatus)toStatus{
NSLog(@"*****************************************");
if (fromStatus != toStatus) {
NSLog(@"========狀態改變了啊=========");
}
NSLog(@"fromStatus: %@ toStatus: %@",@(fromStatus),@(toStatus));
NSString *statusStr = [[BMEnvObserverCenterNetworkStatus defaultCenter] currentNetWorkStatusString];
NSLog(@"當前網絡狀態為: %@",statusStr);
}
特別提示: 你必須要在監聽類銷毀時調用BMAddNetworkStatusObserver(self);