=简易实现=网络实时监控

添加第三方Reachability 加入需要添加Systemconfiguration.framework


#import"AppDelegate.h"

didFinishLaunchingWithOptions中添加

 /****************************************************/
    
    //网络检测****************
    [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
    hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
    [hostReach startNotifier];
    
    /****************************************************/

- (void)reachabilityChanged:(NSNotification*)note{
    NSLog(@"==_==");
    Reachability* curReach= [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability:curReach];
}
// 更新网络状态
- (void)updateInterfaceWithReachability: (Reachability*)curReach
{
    //对连接改变做出响应的处理动作。
    
    NetworkStatus status=[curReach currentReachabilityStatus];
    NSUserDefaults * user =[NSUserDefaults standardUserDefaults];
    if (status== NotReachable) { //没有连接到网络就弹出提实况
        [user removeObjectForKey:@"network"];
        [user setBool:NO forKey:@"network"];
        
        [self showAlert:@"网络连接被断开"];
    }else{
        [user removeObjectForKey:@"network"];
        [user setBool:YES forKey:@"network"];
        
        [self showAlert:@"网络连接成功"];
    }
    NSLog(@"%@",[user objectForKey:@"network"]);
    
    [[NSNotificationCenter defaultCenter]postNotificationName:@"network" object:user];
}

-(void)showAlert:(NSString *)message{
    UIAlertView*alert= [[UIAlertView alloc] initWithTitle:message
                                                                  message:nil delegate:nil
                                                      cancelButtonTitle:@"确定"otherButtonTitles:nil];
    [alert show];
}

#import"ViewController.h"


在此viewDidLoad中添加注册通知

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(network:) name:@"network" object:nil];
   
}

-(void)network:(NSNotification *)note{
     id obj = [note object];//获取到传递的对象
    NSLog(@"---%@-----",[obj objectForKey:@"network"]);
    BOOL isOpen = [[obj objectForKey:@"network"] intValue];
    NSLog(@"%d",isOpen);
    if (isOpen) {
        NSLog(@"--有网络--");
    }else{
        NSLog(@"--无网络--");
    }
}


最近学会的一个怎么实现网络实时监控的简易方法。欢迎大家能指出其中不恰当的地方。





你可能感兴趣的:(Reachability,网络实时监听)