美文网首页
iOS常用隐私权限获取

iOS常用隐私权限获取

作者: Geniune | 来源:发表于2019-11-26 17:35 被阅读0次

从iOS10开始苹果更加注重用户隐私,很多例如:定位、相机、相册、蓝牙、通讯录等功能需要弹选择框经过用户同意后才能使用。如果用户点击不同意,但你仍坚持调用相关的函数,那App大多数时候就会华丽Crash!为了避免这些问题,可以通过一些方法获取到当前App对应用户隐私的权限状态。

先上代码

https://github.com/Geniune/LJPrefs

info.plist设置

首先要在info.plist中加入对应的key-value键值对,key如下图所示,value则需要输入你的App获取这个权限的目的,如果不设置运行会报错,例如:'NSHealthUpdateUsageDescription must be set in the app's Info.plist

Data Class Xcode Key
Apple Music Privacy - Media Library Usage Description
Bluetooth Privacy - Bluetooth Always Usage Description
Calendar Privacy - Calendars Usage Description
Camera Privacy - Camera Usage Description
Contacts Privacy - Contacts Usage Description
Health Privacy - Health Share Usage Description
Privacy - Health Update Usage Description
Home Privacy - HomeKit Usage Description
Location Privacy - Location When In Use Usage Description
Privacy - Location Always Usage Description
Privacy - Location Always and When In Use Usage Description
Microphone Privacy - Microphone Usage Description
Motion Privacy - Motion Usage Description
Photos Privacy - Photo Library Usage Description
Reminders Privacy - Reminders Usage Description
Siri Privacy - Siri Usage Description

权限代码判断

为了好理解我们用伪代码,以获取相册权限为例,拿到PHAuthorizationStatus枚举类型,可能有以下几种情况:

  • StatusNotDetermined:表示用户尚未作出选择(有些支持开发者调用请求权限的函数主动弹框询问用户);
  • StatusRestricted:表示无权更改此应用程序状态,有可能是”家长控制“等原因;
  • StatusDenied:说明在获取权限弹框界面上,用户点击了”不允许“,遇上这个情况可以给用户一个友好的提示,引导其去”设置“中打开对应权限;
  • StatusAuthorized:说明在获取权限弹框界面上,用户点击了”允许“,相关权限对应的功能可以正常使用。

注意:每次调用UIImagePickerController之前都要判断status,若该权限被用户明确拒绝,不加判断App会有奔溃的风险!(在首次权限弹框点击”允许“后,可以到”设置“中手动将对应权限关闭,这里的判断主要就是为了预防此类问题)

如果本文对你有所帮助,记得点个赞哈

相关文章

网友评论

      本文标题:iOS常用隐私权限获取

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