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/

你可能感兴趣的:(iOS开发请求定位权限总结)