iOS开发请求定位权限总结

  1. iOS7以前
    系统配置之后出现:永不、始终 选项
  2. iOS8-10
    系统配置之后出现:永不、始终 选项
    通过配置 NSLocationWhenInUseUsageDescription 可出现 使用应用期间 选项
  3. iOS11+
    不用配置NSLocationAlwaysUsageDescription,就会出现永不、始终、使用应用期间 选项
  4. iOS13
    1.增加 允许一次 选项
    用户选择 Allow Once
    iOS 13 提出了 Temporary authorization 的概念。当用户选择 Allow Once 后,我们的 App 就获得了 Temporary authorization ,也就是临时权限。该权限有以下特点:
    1.实际的权限类型是:WhenInUse;
  5. App 重启后,定位权限会重新变成 NotDetermined,下次开启定位时再申请定位权限会重新弹框让用户确认;
    2.在 iOS 13 系统,申请 WhenInUse 或 Always 权限时,系统都会先弹出来下面的弹框让用户选择:
    "使用app时允许、允许一次、不允许"
    用户选择 Allow While In Use
    如果用户选择 Allow While In Use ,我们的 App 会获得 WhenInUse 权限。
    如果之前申请的是 WhenInUse 权限,那么就跟 iOS 13 之前版本的系统表现没什么区别;
    系统会在某个时间再弹出一个弹框询问用户是继续给我们的 App WhenInUse 权限,还是切换成 Always 权限,iOS 13 中,没法直接向用户要 Always 权限了,必须要经过一个二次确认。

备注:系统确认弹窗弹出时,为打断状态(UIApplicationStateInactive)。

参考资料:
https://www.jianshu.com/p/39e6d61b256c
http://foogry.wang/2019/09/18/2019-09-18-ios-ding-wei-quan-xian-na-xie-shi/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容