我是靠谱客的博主 呆萌百褶裙,最近开发中收集的这篇文章主要介绍iOS 网络权限管理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网络权限管理

一、iOS网络情况分类:

  1. 通过App应用设置网络使用权限(关闭、WLAN、WLAN与蜂窝移动网)
  2. 直接设置手机网络情况(飞行模式、无线局域网络、蜂窝移动网络)

二、iOS开发使用到的网络判断类:

  1. AFNetworkReachability或者Reachability来判断网络的可达性,这两个类可以判断网络是否可达,以及可达时网络的类型(WLAN还是蜂窝移动网络);

  2. CTCellularData来判断网络数据是否受限,只有应用网络权限设置为WLAN与蜂窝移动网时,网络数据才会返回不受限;

三、组合关系:

权限飞行模式/关闭网络局域网蜂窝移动网络
关闭不可达-数据受限不可达-数据受限不可达-数据受限
WLAN不可达-数据受限WLAN-数据受限不可达-数据受限
WLAN和蜂窝移动网不可达-数据受限WLAN-数据不受限WLAN-数据不受限

注:关闭网络,及关闭无线局域网和蜂窝移动网络。

四、特殊说明:

  1. 第一次安装应用(之前从未安装过),第一次启动App时,会提示选择网络,选择之后就不会提示选择网络;但有时第一次安装时不出现选择网络,需要在设置中修改任意一个应用的网络权限,然后重启App,就会提示网络(目前没有找到不出现选择网络的原因);

  2. 当网络由可达状态切换到不可达状态后,第一进入App时,系统会提示一次网络权限改变的提示;

  3. 修改网络权限时,App不会重启,这个地方与相册授权不同。相册、相机、麦克风等修改权限后返回时,App会重新启动。

五、代码:

CTCellularData *cellularData = [[CTCellularData alloc] init];
cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state) {
        //获取联网权限状态
        switch (state) {
            case kCTCellularDataRestricted:
                NSLog(@"Restricrted");
                break;
                
            case kCTCellularDataNotRestricted:
                NSLog(@"Not Restricted");
                break;
                
                //未知,第一次请求
            case kCTCellularDataRestrictedStateUnknown:
                NSLog(@"Unknown");
                break;
                
            default:
                break;
        };
    };

AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        //获取联网可达状态
        switch (status) {
            case AFNetworkReachabilityStatusUnknown:
                NSLog(@"NetworkingTypeUnknown");
                break;
                
            case AFNetworkReachabilityStatusNotReachable:
                NSLog(@"NetworkingTypeNotReachable");
                break;
                
            case AFNetworkReachabilityStatusReachableViaWWAN:
                NSLog(@"NetworkingTypeReachableViaWWAN");
                break;
                
            case AFNetworkReachabilityStatusReachableViaWiFi:
                NSLog(@"NetworkingTypeReachableViaWiFi");
                break;
                
            default:
                NSLog(@"NetworkingTypeUnknown");
                break;
        }


转载链接:https://www.jianshu.com/p/2d3ef8b72986

最后

以上就是呆萌百褶裙为你收集整理的iOS 网络权限管理的全部内容,希望文章能够帮你解决iOS 网络权限管理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部