Skip to content
针对 iOS 网络权限的监控和判断
Branch: master
Clone or download
Latest commit ab83357 Apr 9, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ZYNetworkAccessibity 1.2, Support for iOS12 Nov 8, 2018
ZYNetworkAccessibityDemo 1.11 release Jul 24, 2018
README.md Update README.md Apr 9, 2019

README.md

ZYNetworkAccessibity

Blog 介绍

##背景

一直都有用户反馈无法正常联网的问题,经过定位,发现很大一部分用户是因为网络权限被系统关闭,经过资料搜集和排除发现根本原因是:

  1. 第一次打开 app 不能访问网络,无任何提示
  2. 第一次打开 app 直接提示「已为“XXX”关闭网络」
  3. 第一次打开 app ,用户点错了选择了「不允许」或「WLAN」

对于第 1 种情况,出现在 iOS 10 比较多,一旦出现后系统设置里也找不到「无线数据」这一配置选项,随着 iOS 的更新,貌似被 Apple 修复了,GitHub 上面有 ZIKCellularAuthorization 其进行分析和提出一种解决方案,强制让系统弹出那个询问框。

但是第 2、3种情况现在 iOS 12 还经常有发生,对于这种情况,ZYNetworkAccessibity 提供了检测帮忙开发者引导用户打开网络权限。

用法

1、将 ZYNetworkAccessibity.h 和 ZYNetworkAccessibity.m 添加到项目中,在合适的时机,比如 didFinishLaunchingWithOptions 开启,ZYNetworkAccessibity:

[ZYNetworkAccessibity start];

2、监听 ZYNetworkAccessibityChangedNotification 并处理通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkChanged:) name:ZYNetworkAccessibityChangedNotification object:nil];
- (void)networkChanged:(NSNotification *)notification {
    
    ZYNetworkAccessibleState state = ZYNetworkAccessibity.currentState;

    if (state == ZYNetworkRestricted) {
        NSLog(@"网络权限被关闭");
    }
}

另外还实现了自动提醒用户打开权限,如果你需要,请打开

[ZYNetworkAccessibity setAlertEnable:YES];
You can’t perform that action at this time.