iOS下的实际网络连接状态检测
RealReachability简单介绍
RealReachability是github的开源库, 此框架开发的初衷来源于项目实际需求,离线模式对网络连接状态的要求比较苛刻,且实际场景经常会遇到“伪连接”的情况,Reachability面对此场景力不从心。多方研究后引入了ping能力(此方案流量开销最小,也最简单),实现了简单的实际网络连接监测;
集成和使用介绍
集成
最简便的集成方法当属pod: pod 'RealReachability'。
手动集成:将RealReachability文件夹加入到工程即可。
依赖:Xcode5.0+,支持ARC, iOS6+.项目需要引入SystemConfiguration.framework.
使用介绍
其接口的设计和调用方法和Reachability非常相似,大家可以无缝上手,非常方便。 开启网络监听:
[GLobalRealReachability startNotifier];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(networkChanged:)
name:kRealReachabilityChangedNotification
object:nil];
回调代码示例
- (void)networkChanged:(NSNotification *)notification
{
RealReachability *reachability = (RealReachability *)notification.object;
ReachabilityStatus status = [reachability currentReachabilityStatus];
NSLog(@"currentStatus:%@",@(status));
}
触发实时网络状态查询代码示例:
[GLobalRealReachability reachabilityWithBlock:^(ReachabilityStatus status) {
switch(status)
{
caseNotReachable:
{
// case NotReachable handler
break;
}
caseReachableViaWiFi:
{
// case ReachableViaWiFi handler
break;
}
caseReachableViaWWAN:
{
// case ReachableViaWWAN handler
break;
}
default:
break;
}
}];
查询当前实际网络连接状态:
1ReachabilityStatus status = [reachability currentReachabilityStatus];