网络状态监测
2016-07-10 21:10
555 查看
IOS开发过程中网络状态的监测
(1) 苹果自带的Reachability
注意:Build Phases 中的 Compile Sources中Reachability.m设置
![](http://img.blog.csdn.net/20160710210539569)
核心代码:
2 用 AFNetworking 框架中的 AFNetworkReachabilityManager 实现网络状态监听:
(1) 苹果自带的Reachability
注意:Build Phases 中的 Compile Sources中Reachability.m设置
核心代码:
@property (nonatomic, strong) Reachability *reach; - (void)viewDidLoad { [super viewDidLoad]; //发送状态改变的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStatusChanged) name:kReachabilityChangedNotification object:nil]; //获取Reachability对象 _reach = [Reachability reachabilityForInternetConnection]; //开始监听网络 [self.reach startNotifier]; } - (void)dealloc{ [self.reach stopNotifier]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self checkNetworkState]; } - (void)networkStatusChanged{ NSLog(@"网络状态改变"); [self checkNetworkState]; } /** 监听网络改变 */ - (void)checkNetworkState{ if ([self isWifi]){ NSLog(@"WIFI"); }else if([self isWan]){ NSLog(@"WAN"); }else{ NSLog(@"无网络连接"); } } /** 判断是否为wifi */ - (BOOL)isWifi{ Reachability *wifi = [Reachability reachabilityForLocalWiFi]; //获取当前的状态 NetworkStatus wifiStatus = wifi.currentReachabilityStatus; if (wifiStatus != NotReachable) { return YES; }else{ return NO; } } /** 判断是否为WAN */ - (BOOL)isWan{ Reachability *wan = [Reachability reachabilityForInternetConnection]; NetworkStatus wanStatus = wan.currentReachabilityStatus; if (wanStatus != NotReachable) { return YES; }else{ return NO; } }
2 用 AFNetworking 框架中的 AFNetworkReachabilityManager 实现网络状态监听:
@property (nonatomic, strong) AFNetworkReachabilityManager *mgr; - (void)afnStatus{ self.mgr = [AFNetworkReachabilityManager manager]; [self.mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未知原因"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"无网络连接"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"WIFI"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"WAN"); break; default: break; } }]; [self.mgr startMonitoring]; } - (void)dealloc{ [self.mgr stopMonitoring]; }
相关文章推荐
- android wifi 无线调试
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 虚拟化基础架构Windows 2008篇之10-使用WDS安装Windows 7
- 拨号网络的简单知识
- 菜鸟必看网络名词
- 通晓网络测试常用命令
- 网络路由技术及运用2
- IP网络路由技术
- 网络防火墙的设置技巧
- 网络管理之IP地址篇
- 网络路由技术及运用3
- 网络路由技术及运用4
- 网络路由技术及运用1