zoukankan      html  css  js  c++  java
  • iOS开发——Reachability和AFNetworking判断网络连接状态

      一、Reachability
    // 监听网络状态改变的通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
    
    // 创建Reachability
    self.conn = [Reachability reachabilityForInternetConnection];
    // 开始监控网络(一旦网络状态发生改变, 就会发出通知kReachabilityChangedNotification)
    [self.conn startNotifier];
    
    // 处理网络状态改变
    - (void)networkStateChange
    {
        // 1.检测wifi状态
        Reachability *wifi = [Reachability reachabilityForLocalWiFi];
        
        // 2.检测手机是否能上网络(WIFI3G2.5G)
        Reachability *conn = [Reachability reachabilityForInternetConnection];
        
        // 3.判断网络状态
        if ([wifi currentReachabilityStatus] != NotReachable) { 
         // 有wifi NSLog(@"有wifi"); } else if ([conn currentReachabilityStatus] != NotReachable) {
         // 没有使用wifi, 使用手机自带网络进行上网 NSLog(@"使用手机自带网络进行上网"); } else {
         // 没有网络 NSLog(@"没有网络"); } }

      二、AFNetworking // 1.获得网络监控的管理者 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; // 2.设置网络状态改变后的处理 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
      // 当网络状态改变了, 就会调用这个block
      switch (status) {
        case AFNetworkReachabilityStatusUnknown:
          // 未知网络
          NSLog(@"未知网络");
          break;
        case AFNetworkReachabilityStatusNotReachable:
          // 没有网络(断网)
          NSLog(@"没有网络(断网)");
          break;
        case AFNetworkReachabilityStatusReachableViaWWAN:
          // 手机自带网络
          NSLog(@"手机自带网络");
          break;
        case AFNetworkReachabilityStatusReachableViaWiFi:
          // WIFI
          NSLog(@"WIFI");
          break;
      }
    }];

    // 3.开始监控
    [manager startMonitoring];
  • 相关阅读:
    Android 获取View在屏幕中的位置【转】
    算法学习资源 -- 2018年8月21日星期二
    Activity SingleInstance启动模式
    Android Studio添加aar依赖的两种方式
    Multiple dex files define Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;
    Android Studio添加aar依赖
    jdk-8u181-docs.chm -- 制作时间2018年8月12日
    大串中查找校串出现的次数(11)
    字符串反转(10)
    String类的替换方法(9)
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/5288820.html
Copyright © 2011-2022 走看看