iOS中使用 Reachability 检测网络

// Allocate a reachability object
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

// Set the blocks
reach.reachableBlock = ^(Reachability*reach)
{
    // keep in mind this is called on a background thread
    // and if you are updating the UI it needs to happen
    // on the main thread, like this:

    dispatch_async(dispatch_get_main_queue(), ^{
      NSLog(@"REACHABLE!");
    });
};

reach.unreachableBlock = ^(Reachability*reach)
{
    NSLog(@"UNREACHABLE!");
};

// Start the notifier, which will cause the reachability object to retain itself!
[reach startNotifier];

// Allocate a reachability object
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

// Tell the reachability that we DON'T want to be reachable on 3G/EDGE/CDMA
reach.reachableOnWWAN = NO;

// Here we set up a NSNotification observer. The Reachability that caused the notification
// is passed in the object parameter
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(reachabilityChanged:)
                                             name:kReachabilityChangedNotification
                                           object:nil];

[reach startNotifier];

- (void) reachabilityChanged: (NSNotification*)note {  
     Reachability * reach = [note object];  
     
    if(![reach isReachable])  
    {  
        self.notificationLabel.text = @"网络不可用";  
          self.notificationLabel.backgroundColor = [UIColor redColor];  
          self.wifiOnlyLabel.backgroundColor = [UIColor redColor];  
          self.wwanOnlyLabel.backgroundColor = [UIColor redColor];  
          return;  
    }  
         
     self.notificationLabel.text = @"网络可用";  
     self.notificationLabel.backgroundColor = [UIColor greenColor];  
      
     if (reach.isReachableViaWiFi) {  
          self.wifiOnlyLabel.backgroundColor = [UIColor greenColor];  
          self.wifiOnlyLabel.text = @"当前通过wifi连接";  
     } else {  
          self.wifiOnlyLabel.backgroundColor = [UIColor redColor];  
          self.wifiOnlyLabel.text = @"wifi未开启,不能用";  
     }  
      
     if (reach.isReachableViaWWAN) {  
          self.wwanOnlyLabel.backgroundColor = [UIColor greenColor];  
          self.wwanOnlyLabel.text = @"当前通过2g or 3g连接";  
     } else {  
          self.wwanOnlyLabel.backgroundColor = [UIColor redColor];  
          self.wwanOnlyLabel.text = @"2g or 3g网络未使用";  
     }  
}


你可能感兴趣的:(Reachability,检测网络)