#import "ViewController.h"
#import "Reachability.h"
@interface ViewController ()
@property(nonatomic,retain)Reachability * coon;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton * checkBut = [UIButton buttonWithType:UIButtonTypeCustom];
[checkBut addTarget:self action:@selector(handleCheck:) forControlEvents:UIControlEventTouchUpInside];
[checkBut setTitle:@"点击检测网络" forState:UIControlStateNormal];
[self.view addSubview:checkBut];
checkBut.frame = CGRectMake(50, 50, 120, 20);
//创建一个监控网络状态的消息中心
NSNotificationCenter * notifyCenter = [NSNotificationCenter defaultCenter];
[notifyCenter addObserver:self selector:@selector(checkNetWork) name:kReachabilityChangedNotification object:nil];
self.coon = [Reachability reachabilityForInternetConnection];//
[self.coon startNotifier];//开始检测网络
}
//检测网络的按钮
-(void)handleCheck:(UIButton *)sender{
//检测网络是否发生变化
[self checkNetWork];
}
//监控网络是否发生了变化
-(void)checkNetWork{
//1检测 WiFi 的状态
Reachability * wifi = [Reachability reachabilityForLocalWiFi];
//2.检测手机手否能够上网(2G/3G/2.5G/Wifi)
Reachability * conn = [Reachability reachabilityForInternetConnection];
if ([wifi currentReachabilityStatus] != NotReachable) {//有wifi
UIAlertView * alter = [[UIAlertView alloc]initWithTitle:@"网络检测" message:@"WiFi链接成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alter show];
NSLog(@"检测到互联网Wifi");
}else if ([conn currentReachabilityStatus] != NotReachable)//没使用WiFi网络,使用手机自带的网络
{
UIAlertView * alter = [[UIAlertView alloc]initWithTitle:@"网络检测" message:@"手机自带的网络" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alter show];
NSLog(@"检测到互联网本地网络");
}else{
NSLog(@"没有检测到互联网");
}
//使用 wifi
// [wifi currentReachabilityStatus] != NotReachable;
// [conn currentReachabilityStatus] != NotReachable;
//使用的是本地的网络
// [wifi currentReachabilityStatus] == NotReachable;
// [conn currentReachabilityStatus] != NotReachable;
//没有网络
// [wifi currentReachabilityStatus] != NotReachable;
// [conn currentReachabilityStatus] != NotReachable;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
-(void)dealloc{
[self.coon stopNotifier];
//移除消息的通知者
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end
检测网络,我用的是 pod引入的第三方网络检测类 Reachability类