网络环境判断

这里我们使用第三方库* Reachability* 用于网络环境的判断
打开终端 输入命令 *pod search Reachability *
在搜寻结果中可以找到

-> Reachability (3.2)

ARC and GCD Compatible Reachability Class for iOS and OS X. Drop in

replacement for Apple Reachability.

pod 'Reachability', '~> 3.2'

- Homepage: https://github.com/tonymillion/Reachability

- Source:https://github.com/tonymillion/Reachability.git

- Versions: 3.2, 3.1.1, 3.1.0, 3.0.0 [master repo]

复制 *Source 地址 *即可找到在Github上的资源 下载
一.创建工程
在新创建的工程中导入下载好的文件中的Reachability.h 和 Reachability.m

//HostName尽量使用一个比较稳定的网站

Reachability* reachability = [ReachabilityreachabilityWithHostName:@"www.baidu.com"];

二.创建reachability的对象


HostName尽量使用一个比较稳定的网站

Reachability* reachability = [ReachabilityreachabilityWithHostName:@"www.baidu.com"];

三.添加添加观察者接受网络环境变化的通知


 //kReachabilityChangedNotification网络环境变化通知的名字

//NetworkStatus网络环境的枚举

//-(NSString*)currentReachabilityString网络环境的字符串

[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(change:)name:kReachabilityChangedNotificationobject:nil];

四.开始监测


//-(BOOL)startNotifier;开始通知监测

//-(void)stopNotifier;结束监测

[reachabilitystartNotifier];

五.得到通知中的reachability对象获得网络状态


-(void)change:(NSNotification*)not{

//not.object得到reachability的对象 

Reachability* reachability = not.object;

NSString*status =@"";

//currentReachabilityStatus 当前状态

switch(reachability.currentReachabilityStatus) {

caseNotReachable:{

status =@"无网络";

break;

}

caseReachableViaWiFi:{

status =@"WIFI在线";

break;

}

caseReachableViaWWAN:{

status =@"移动蜂窝网络";

break;

}

default:

break;

}

NSLog(@"%@",status);

}

你可能感兴趣的:(网络环境判断)