关闭

使用AFNetworking框架检测网络状态

标签: 网络检测
786人阅读 评论(0) 收藏 举报
分类:

AFNetworking框架中自带了网络检测功能,在AFNetworkReachabilityManager文件中,使用AFNetworkReachabilityManager来监听网络状态的改变;苹果也提供Reachability来监听网络。因现在使用AFNetworking框架进行网络请求较多,因此博主使用自带的网络检测。

以下是枚举类的几种状态

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
    AFNetworkReachabilityStatusUnknown          = -1,
    AFNetworkReachabilityStatusNotReachable     = 0,
    AFNetworkReachabilityStatusReachableViaWWAN = 1,
    AFNetworkReachabilityStatusReachableViaWiFi = 2,
};

-(void)afnNetworkReachability
{
    //1.创建网络状态监测通知
    AFNetworkReachabilityManager *manger = [AFNetworkReachabilityManager sharedManager];

    //2.监测网络状态改变
    [manger setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

        switch (status) {
            case AFNetworkReachabilityStatusUnknown:
                NSLog(@"未知网络");
                break;
            case AFNetworkReachabilityStatusNotReachable:
                NSLog(@"没有连接网络");
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:
                NSLog(@"3G|4G");
                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:
                NSLog(@"WiFi");
                break;
            default:
                break;
        }
    }];


Reachablity 是一个iOS下检测,iOS设备网络环境用的库。

因为Reachablity只能监听网络状态的状况,不能监听它的改变,所以采用通知的方式

-(void)viewDidLoad
{
    [super viewDidLoad];

    //注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityStatusChange) name:kReachabilityChangedNotification object:nil];

    //创建对象
    Reachability *reachability = [Reachability reachabilityForInternetConnection];
    [reachability startNotifier];
}
-(void)reachabilityStatusChange
{
    if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus == ReachableViaWWAN) {
        NSLog(@"3G|4G");
        return;
    }
    if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus == ReachableViaWiFi) {
        NSLog(@"wifi");
        return;
    }
    NSLog(@"未知网络");
}




8
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:287368次
    • 积分:8081
    • 等级:
    • 排名:第2812名
    • 原创:327篇
    • 转载:228篇
    • 译文:0篇
    • 评论:39条
    最新评论
    苹果官方文档