美文网首页
监听网络状态

监听网络状态

作者: Show撑腰 | 来源:发表于2015-11-27 19:13 被阅读0次

    如果用系统的方法需要导入 Reachability.h Reachability.m

    @interface ViewController ()
    @property (nonatomic, strong) Reachability r1; /*< <#属性名#> */

    @end

    @implementation ViewController

    • (void)viewDidLoad {
      [super viewDidLoad];
      /*
      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    // nullable : 代表可以为nil
    // __nonnull : 代表不能为nil
    [manager GET:@"www.520it.com" parameters:nil success:^ void(NSURLSessionDataTask * task, id responseObjc) {
    NSLog(@"成功的回调");
    } failure:^ void(NSURLSessionDataTask * task, NSError * error) {
    NSLog(@"失败的回调");
    }];
    */

    // 1.创建Reachability对象
    self.r1 = [Reachability reachabilityForLocalWiFi];
    // 2.给Reachability对象注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];
    // 3.让Reachability对象发送网络改变的通知
    [self.r1 startNotifier];
    

    }

    • (void)dealloc
      {
      [[NSNotificationCenter defaultCenter] removeObserver:self];
      }

    • (void)getNetworkStatus
      {
      if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) {
      NSLog(@"当前是蜂窝网");
      }else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable)
      {
      NSLog(@"当前是蜂窝网");
      }else
      {
      NSLog(@"没有网络");
      }
      }

    • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent )event
      {
      /

      // 1.创建Reachability对象
      // 创建一个蜂窝网的Reachability对象
      Reachability *r1 = [Reachability reachabilityForInternetConnection];
      // 2.获取当前对象的网络状态, 如果不是NotReachable值, 那么就代表当前的网络状态是我们创建的类型
      if(r1.currentReachabilityStatus != NotReachable)
      {
      NSLog(@"当前是蜂窝网");
      }
      // 创建一个局域网的Reachability对象
      Reachability *r2 = [Reachability reachabilityForLocalWiFi];
      if(r2.currentReachabilityStatus != NotReachable)
      {
      NSLog(@"当前是蜂窝网");
      }
      */

    }

    • (void)afnReachability
      {
      // 1.创建网络监听管理者
      AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

      // 2.设置网络变化的回调
      [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
      // 只要用户的网络发生改变, 就会调用这个block
      /*
      AFNetworkReachabilityStatusUnknown = 不能识别,
      AFNetworkReachabilityStatusNotReachable = 没有网络,
      AFNetworkReachabilityStatusReachableViaWWAN = 蜂窝网,
      AFNetworkReachabilityStatusReachableViaWiFi = 局域网,
      */
      switch (status) {
      case AFNetworkReachabilityStatusReachableViaWWAN:
      NSLog(@"蜂窝网");
      break;
      case AFNetworkReachabilityStatusReachableViaWiFi:
      NSLog(@"局域网");
      break;
      case AFNetworkReachabilityStatusNotReachable:
      NSLog(@"没有网络");
      break;
      default:
      NSLog(@"不能识别");
      break;
      }
      }];

      // 3.开始监听
      [manager startMonitoring];
      }

    @end

    相关文章

      网友评论

          本文标题:监听网络状态

          本文链接:https://www.haomeiwen.com/subject/afbdhttx.html