首页 编程 软件学院 查看内容

iOS开发--监测网络变化

2015-1-17 23:40 1016 0

摘要: 通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。一、包含头文件[ob...
关键词: nbsp 网络 Reachability 变化 plaincopy networkStateChan 界面 状态 networkConn break

通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。一、包含头文件[objc] view plaincopy#import "Reachability.h"  同时在ViewContorller中添加实例变量:Reachability *_networkConn;二、建立网络变化监听   网络变化包括从断开变为连接、连接变为断开两种情况,任意一种情况发生,app都会收到网络变化通知。 在viewDidLoad方法中添加如下代码:[objc] view plaincopy[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];  _networkConn = [Reachability reachabilityForInternetConnection];  [_networkConn startNotifier];      其中,networkStateChange函数会在网络发生变化的时候被调用。三、获取网络状态    在接受到网络变化通知后,通知并没有告知当前的网络状态,所以我们并不知道当前网络是处于断开还是连接,需要主动探测,探测方法如下:[objc] view plaincopy- (BOOL)isNetworkEnable  {      BOOL flag = YES;      Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];      switch ([r currentReachabilityStatus]) {          case NotReachable:              flag = NO;              break;          case ReachableViaWWAN:              break;          case ReachableViaWiFi:              break;                        default:              break;      }            return flag;  }  四、刷新界面[objc] view plaincopy- (void)networkStateChange  {      if ([self isNetworkEnable]) {          //在此刷新界面      }  }  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部