首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:获取移动数据权限状态

Swift:获取移动数据权限状态
EN

Stack Overflow用户
提问于 2019-04-16 17:09:11
回答 1查看 627关注 0票数 1

我有一个应用程序,我在iOS 10.3上测试了几天后,它运行良好。我最近在iOS 12设备上测试了它,它没有像预期的那样工作。应用程序无法连接到我的服务器。

经过调查,我发现在Settings -> AppName中,我的应用程序关闭了“移动数据”开关。打开它之后,它就开始完美地工作了。

那么,在这种情况下,有什么方法可以从代码中确定此开关的状态吗?如果我能够知道状态,如果状态是关闭的,我可以使用以下方法将用户重定向到应用程序设置:

代码语言:javascript
复制
let urlObj = NSURL.init(string:UIApplicationOpenSettingsURLString)
if #available(iOS 10.0, *) {
    UIApplication.shared.open(urlObj as! URL, options: [ : ], completionHandler: { Success in

     })
} else {
      let success = UIApplication.shared.openURL(url as URL)
      print("Open \(url): \(success)")                            
}

P.S:我并不是在寻找一个使用Reachability的解决方案,因为它并不完全可靠。

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 17:14:35

在最新的iOS发行版中无法检查此设置。您有两个选项来处理这个问题:第一,您检查设备是否没有连接到WiFi,也没有连接到飞机模式。如果无法到达服务器,则可以安全地假定数据是禁用的。

第二个选项只是显示用户错误,说明应用程序无法到达服务器,并相应地更改应用程序中的UI/通知,以处理无法到达网络连接的任何场景。

CTCellularData是一个潜在的选项,但是,在iOS 11中,状态检查的频率下降了一些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55713344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档