項目中經(jīng)常會遇到需要獲取當(dāng)前的網(wǎng)絡(luò)狀態(tài)捂龄,自己就簡單的封裝了一下峡碉。
- 基于AFNetworking的網(wǎng)絡(luò)監(jiān)測
1.import "NetworkStatus.h"
#import <Foundation/Foundation.h>
#import "AFNetworking.h"
typedef void(^netStateBlock)(NSInteger netState);
@interface NetworkStatus : NSObject
+ (instancetype)sharedNetManager;
/**
* 網(wǎng)絡(luò)監(jiān)測
* @param block 判斷結(jié)果回調(diào)
* @return 網(wǎng)絡(luò)監(jiān)測
*/
+ (void)netWorkState:(netStateBlock)block;
@end
2.import "NetworkStatus.m"
#pragma mark - 網(wǎng)絡(luò)監(jiān)測
+ (instancetype)sharedNetManager {
static dispatch_once_t once;
static NetworkStatus *sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
#pragma mark----網(wǎng)絡(luò)檢測
+ (void)netWorkState:(netStateBlock)block {
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager startMonitoring];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
if (status== 0 || status == -1) {
block(status);
}else{
block(status);
}
}];
}
3.調(diào)用
[NetworkStatus netWorkState:^(NSInteger netState) {
switch (netState) {
case 1:{
NSLog(@"手機(jī)流量上網(wǎng)");
}
break;
case 2:{
NSLog(@"WIFI上網(wǎng)");
}
break;
default:{
NSLog(@"沒網(wǎng)");
}
break;
}
}];
4.網(wǎng)絡(luò)狀態(tài)
AFNetworkReachabilityStatusUnknown = -1, //未知的網(wǎng)絡(luò)
AFNetworkReachabilityStatusNotReachable = 0, // 無連接
AFNetworkReachabilityStatusReachableViaWWAN = 1, //2G,3G,4G
AFNetworkReachabilityStatusReachableViaWiFi = 2, //wifi網(wǎng)絡(luò)