美文网首页
ios从状态栏获取网络状态(iphoneX和非iphoneX的区

ios从状态栏获取网络状态(iphoneX和非iphoneX的区

作者: andy_tu | 来源:发表于2018-09-20 16:07 被阅读0次

1.通过kvc获取状态栏上面的控件
NSArray *children;
// 不能用 [[self deviceVersion] isEqualToString:@"iPhone X"] 来判断,因为模拟器不会返回 iPhone X
if ([[[UIApplication sharedApplication] valueForKeyPath:@"_statusBar"] isKindOfClass:NSClassFromString(@"UIStatusBar_Modern")]) {
children = [[[[[UIApplication sharedApplication] valueForKeyPath:@"_statusBar"] valueForKeyPath:@"_statusBar"] valueForKeyPath:@"foregroundView"] subviews];
} else {
children = [[[[UIApplication sharedApplication] valueForKeyPath:@"_statusBar"] valueForKeyPath:@"foregroundView"] subviews];
}

2.通过控件获取网络类型
int networkType = 0;
for(id child in children){
if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {

        networkType = [[child valueForKeyPath:@"dataNetworkType"] intValue];
        break;
    }
}

相关文章

网友评论

      本文标题:ios从状态栏获取网络状态(iphoneX和非iphoneX的区

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