美文网首页
使用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