您的位置:首页 > 理论基础 > 计算机网络

iOS APP利用系统自带库监听网络状态

2015-03-06 17:06 405 查看
一个成熟的APP在启动的时候需要对网络状态进行检查,一般来说只需要检查一次,所以一般可以在delegate。m函数中调用,也可以定义静态变量标识判断,下面将列出按照静态变量标示来实现检查操作

static BOOL isFirst = NO;

static BOOL canCheckNetwork = NO;

// 在这里做一个网络可用的检查就可以了

// Reachability 苹果公司提供的检查网络的第三方库

// AFN 在Reachability基础上做一个自己的检查网络的库 基本上一样

/* 使用方法

*/

// 下面这行需要做一次. 监听网络状态 AppDelegate

if (isFirst == NO) {

// 网络只有在startMonitoring完成后才可以使用检查网络状态

[[AFNetworkReachabilityManager sharedManager] startMonitoring];

[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

canCheckNetwork = YES;

}];

isFirst = YES;

}

// 只能在监听完善后才能调用

BOOL isOK = [[AFNetworkReachabilityManager sharedManager] isReachable];

if (isOK == FALSE && canCheckNetwork == YES) {

// 网络有问题

NSError *error = [NSError errorWithDomain:@"网络错误" code:100 userInfo:nil];

if (cb) cb(nil, nil, error);

return;

}

//四种状态

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {

AFNetworkReachabilityStatusUnknown = -1,

AFNetworkReachabilityStatusNotReachable = 0,

AFNetworkReachabilityStatusReachableViaWWAN = 1,

AFNetworkReachabilityStatusReachableViaWiFi = 2,

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: