ios移动开发自然少不了网络的支持,下面我就来介绍下如何判断现在该设备是否连网。
网络测试
添加Reachability.h和Reachability.m
添加SystemConfiguration.framework框架
获得连接状态
Reachability * reach=[Reachability reachabilityWithHostName:目标网址];
switch ([reach currentReachabilityStatus]) {
case NotReachable:
alter=[[UIAlertView alloc]initWithTitle:@"error" message:[NSString stringWithFormat:@"不能访问%@",site] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
[alter show];
break;
case ReachableViaWWAN:
alter=[[UIAlertView alloc]initWithTitle:@"error" message:[NSString stringWithFormat:@"使用3G或者4G访问%@",site] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
[alter show];
case ReachableViaWiFi:
alter=[[UIAlertView alloc]initWithTitle:@"error" message:[NSString stringWithFormat:@"使用WIFI访问%@",site] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
[alter show];
break;
}
对网络进行监听:
[[NSNotificationCenter defaultCenter ]addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
Reachability *reach=[Reachability reachabilityWithHostName:@"www.baidu.com"];
[reach startNotifier];//开始监听
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *curr=[note object];
NetworkStatus status=[curr currentReachabilityStatus];
if (status==NotReachable) {
UIAlertView *alter= [[UIAlertView alloc]initWithTitle:@"error" message:[NSString stringWithFormat:@"您的网络已断开"] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
[alter show];
}
}