首页 > 代码库 > IOS网络访问之获取网络状态
IOS网络访问之获取网络状态
苹果设备的网络状况多变,既可能有网,也可能网络断开,既可能通过wifi联网,也可能通过蜂窝数据联网,很多时候我们需要获知程序当前运行在何种网络状况下
我们可以在苹果官方下载工具类Reachability,解压后将Reachability.h和Reachability.m添加到我们的项目中
示例1:查看当前的网络环境(通过访问一个页面测试网络状况)
Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.cnblogs.com/zanglitao/"]; switch([reach currentReachabilityStatus]) { case NotReachable: NSLog(@"无法访问"); break; case ReachableViaWiFi: NSLog(@"使用wifi"); case ReachableViaWWAN: NSLog(@"使用蜂窝数据"); }
示例2:测试手机是否连接wifi(或者蜂窝)
if([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable) { NSLog(@"wifi网络可用"); } if([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable) { NSLog(@"蜂窝网络可用"); }
示例3:监听网络变化
我们通过Reachability对象的startNotifier方法开启通知,当网络变化时Reachability会发出kReachabilityChangedNotification的通知给默认的通知中心
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(netStatusChange:) name:kReachabilityChangedNotification object:nil]; Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.cnblogs.com/zanglitao/"]; [reach startNotifier];//[reach stopNotifier]; return YES;}- (void)netStatusChange:(NSNotification *)note { Reachability *reach = [note object]; //获取当前网络状态 NetworkStatus *status = [reach currentReachabilityStatus]; }
IOS网络访问之获取网络状态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。