根据系统状态栏判断网络状态
根据系统状态栏判断网络状态
阴雨音语 发表于2年前
根据系统状态栏判断网络状态
  • 发表于 2年前
  • 阅读 31
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 有无网络

 


Swift

    // MARK:
    // MARK: 判断有无网络
    /// 判断有无网络
     func stringIsHaveNetworking() -> String? {
        
        // 状态栏是由当前app控制的,首先获取当前app
        let app = UIApplication.sharedApplication();
        
        let childrenArray = app.valueForKeyPath("statusBar")?.valueForKeyPath("foregroundView")?.subviews;
        
        var type = 0;
     
        
        for i in childrenArray ?? [] {
            
            // 判断 类型
            if i.isKindOfClass(NSClassFromString("UIStatusBarDataNetworkItemView")!) {
                
                type = (i.valueForKeyPath("dataNetworkType")?.integerValue)!;
                
            }
        }
        
        switch type {
        case 1:
            
            return "2G";
 
            
        case 2:
            
            return "3G";
      
            
        case 3:
            
            return "4G";
        
            
        case 5:
            
            return "WIFI";
       
            
        default:
            
            return nil;
      
            
        }
    }

OC

- (NSString *)stringIsHaveNetworking {

    // 状态栏是由当前app控制的,首先获取当前app
    
    // 拿到 AppDelegate
    UIApplication *app = [UIApplication sharedApplication];
    
    NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
    
    int type = 0;
    
    for (id child in children) {
        if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            type = [[child valueForKeyPath:@"dataNetworkType"] intValue];
        }
    }
    
    switch (type) {
        case 1:
            
            return @"2G";
            
            break;
            
        case 2:
            
            return @"3G";
        case 3:
            
            return @"4G";
        case 5:
            
            return @"WIFI";
            
        default:
            
            return @"NO-WIFI";//代表未知网络
            
            break;
    }
}

Swift/OC     Demo


学自:http://www.jianshu.com/p/b643bf74b8c6

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 55
博文 294
码字总数 43486
×
阴雨音语
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: