IT虾米网

IOS开发—网络监听详解

flyfish 2018年06月23日 手机开发 436 0
网络监听用到的类为Reachability.h,这个Xcode项目里面是不自带的,需要从github上面下载,在使用的时候记着导入SystemConfiguration.framework。

首先是在AppDelegate.m中设置网络监听

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

初始化:

_reachability = [Reachability reachabilityForInternetConnection]; 
[_reachability startNotifier]; 
[self updateInterfaceWithReachability:_reachability];
实现两个方法:
- (void) reachabilityChanged: (NSNotification* )note;//网络连接改变
- (void) updateInterfaceWithReachability: (Reachability*) curReach;//处理连接改变后的情况
下面是方法的具体实现,可根据情况自行改变:
// 连接改变 
- (void) reachabilityChanged: (NSNotification* )note { 
    Reachability* curReach = [note object]; 
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]); 
    [self updateInterfaceWithReachability: curReach]; 
} 
 
//处理连接改变后的情况 
- (void) updateInterfaceWithReachability: (Reachability*) curReach { 
    //对连接改变做出响应的处理动作。 
    NetworkStatus status = [curReach currentReachabilityStatus]; 
     
    if (status == NotReachable) { 
        _isReachable = NO; 
        //没有连接到网络就弹出提实况 
        UIAlertView *netAlert = [[UIAlertView alloc] initWithTitle:@"蜂窝移动数据已关闭" message:@"启用蜂窝移动数据或无线局域网来访问数据" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; 
        [netAlert show]; 
    } else { 
        _isReachable = YES; 
    } 
}
发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

网络请求的缓存机制cachePolicy 和缓存的清理详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。