iOS怎么判断当前网络状态

最近公司项目需要判断手机当前的网络状态是2G/3G/4G还是Wifi,下面说明一下iOS端如何判断:

方法主要有两种,第一种利用苹果官方封装好的Reachability库中,做了一下定制化:

typedefNS_ENUM(NSUInteger,HJNetWorkStatus) 

{ZYNetWorkStatusNotReachable= 0,ZYNetWorkStatusUnknown= 1,ZYNetWorkStatusWWAN2G= 2,ZYNetWorkStatusWWAN3G= 3,ZYNetWorkStatusWWAN4G= 4,ZYNetWorkStatusWiFi= 5,

};

#import"Reachability.h"

@property(nonatomic,assign)BOOL isAvaliable;// 当前网络是否可用@property(nonatomic,assign)NSInteger status;// 当前网络状态//发送通知[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(netWorkChanged:) name:kRealReachabilityChangedNotification object:nil];

- (void)netWorkChanged:(NSNotification*)notification{   

 RealReachability *reachability = (RealReachability *)notification.object;  

 ReachabilityStatus status = [reachability currentReachabilityStatus];self.isUserReal =YES;switch(status)

 {

case  RealStatusNotReachable:

self.isAvaliable =NO;

self.status =0;            

[self   alertMessage:@"No Network"];

break;

case RealStatusViaWiFi:

self.isAvaliable =YES;

self.status =1;           

 [self alertMessage:@"WIFI"];

break;

case RealStatusViaWWAN:

self.isAvaliable =YES;

self.status =2;          

  [selfalertMessage:@"2G/3G/4G"];

break;

default:

break;   

 }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容