美文网首页
使用AFNetWorking监听网络变化

使用AFNetWorking监听网络变化

作者: 涛涛灬灬 | 来源:发表于2017-04-19 15:25 被阅读0次

1.在.h中创建不同网络状态的枚举,

typedef NS_ENUM(NSInteger, DDNetworkReachabilityStatus) {
    DDNetworkReachabilityStatusUnknown          = -1,
    DDNetworkReachabilityStatusNotReachable     = 0,
    DDNetworkReachabilityStatusReachableViaWWAN = 1,
    DDNetworkReachabilityStatusReachableViaWiFi = 2,
};

2.创建一个全局记录者

@property (nonatomic, assign) DDNetworkReachabilityStatus status;

3.初始化监听方法


- (void)initChangeValues {
    
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusReachableViaWWAN: {
                self.status = DDNetworkReachabilityStatusReachableViaWWAN;
                [self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusReachableViaWWAN];
            } break;
            case AFNetworkReachabilityStatusReachableViaWiFi: {
                self.status = DDNetworkReachabilityStatusReachableViaWiFi;
                [self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusReachableViaWiFi];
            } break;
            case AFNetworkReachabilityStatusNotReachable: {
                self.status = DDNetworkReachabilityStatusNotReachable;
                [self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusNotReachable];
            } break;
            case AFNetworkReachabilityStatusUnknown: {
                self.status = DDNetworkReachabilityStatusUnknown;
                [self _callAllStatusChangeBlockValue:DDNetworkReachabilityStatusUnknown];
            } break;
        }
    }];
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];//开始监听
}

- (NSString *)networkInfoWithStatus {
    DDNetworkReachabilityStatus status = self.status;
    if (status == DDNetworkReachabilityStatusUnknown || status == DDNetworkReachabilityStatusNotReachable) {
        return @"无网络";
    } else if (status == DDNetworkReachabilityStatusReachableViaWiFi) {
        return @"wifi";
    } else if (status == DDNetworkReachabilityStatusReachableViaWWAN) {
        return @"mobile";
    }
    return @"";
}

相关文章

网友评论

      本文标题:使用AFNetWorking监听网络变化

      本文链接:https://www.haomeiwen.com/subject/xfqhzttx.html