码迷,mamicode.com
首页 > 其他好文 > 详细

检测网络状态

时间:2016-04-11 22:03:36      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

在网络应用中,需要对用户设备的网络状态进行实时监控,目的是

让用户了解自己的网络状态,防止一些误会(比如怪应用不好)

根据用户的网络状态进行智能处理,节省用户流量,提高用户体验

WiFi\3G网络:自动下载高清图片

低速网络:只下载缩略图

没有网络:只显示离线的缓存数据

 

1.使用AFNetworking框架

- (void)afnMonitoring {
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    
    
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(@"------当前网络状态%zd",status);
    }];
    
    [manager startMonitoring];
}
typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
    AFNetworkReachabilityStatusUnknown          = -1,//未知网络
    AFNetworkReachabilityStatusNotReachable     = 0,//没有网络
    AFNetworkReachabilityStatusReachableViaWWAN = 1,//蜂窝网络
    AFNetworkReachabilityStatusReachableViaWiFi = 2,//WiFi网络
}

 

2.使用苹果官方的Reachability

下载地址:

 
- (void)getNetworkStatus {
    if([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) {
        NSLog(@"是WiFi网络");
    }else if([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable) {
        NSLog(@"是蜂窝网络");
    }else {
        NSLog(@"网络故障");
    }
}

长期监控网络的状态

- (void)applyMonitoring {
    //监听通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];
    
    //开始监控网络
    self.reachability = [Reachability reachabilityForInternetConnection];
    [self.reachability startNotifier];
}

取消任务

- (void)dealloc
{
    [self.netReachability stopNotifier];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
}

 

 

 

 
 
 
 

 

检测网络状态

标签:

原文地址:http://www.cnblogs.com/langji/p/5380056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!