iOS 网络判断

/ 0评 / 0

现在的项目几乎都用的AFN,直接使用AFN的网络环境判断

typedef NS_ENUM(int, NetType){
    NetTypeUnknown    = 0,
    NetTypeNoNet   = 1,
    NetTypePhoneNet  = 2,
    NetTypeWifi  = 3,
};

#pragma mark --- 网络监测
+ (void)getNetWorkingStatus:(void(^)(NetType netType))block{
    AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
    [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusUnknown: {
                    // 未知网络
                    SRQLog(@"未知网络");
                    block(NetTypeUnknown);
                }
                break;
                
            case AFNetworkReachabilityStatusNotReachable: {
                    // 没有网络(断网)
                    SRQLog(@"没有网络(断网)");
                    block(NetTypeNoNet);
                }
                break;
                
            case AFNetworkReachabilityStatusReachableViaWWAN: {
                    // 手机自带网络
                    SRQLog(@"手机自带网络");
                    block(NetTypePhoneNet);
                }
                break;
                
            case AFNetworkReachabilityStatusReachableViaWiFi: {
                    // WIFI
                SRQLog(@"WIFI");
                    block(NetTypeWifi);
                }
                break;
        }
    }];
    [mgr startMonitoring];
}

当然你也可以选择在适当的时候停止监控

[mgr stopMonitoring];

评论已关闭。