美文网首页
定位权限请求

定位权限请求

作者: 翻这个墙 | 来源:发表于2017-11-23 10:22 被阅读15次

定位权限请求

  • 从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权
    • 要想获得用户的位置
    • 想访问用户的通讯录、日历、相机、相册等等

用户权限-弹框选择

  • 当想访问用户的隐私信息时,系统会自动弹出一个对话框让用户授权


    定位权限请求.png
    • 一旦用户选择了“Don’t Allow”,意味着你的应用以后就无法使用定位功能
定位权限请求2.png

--

  • 为了使用户在弹框申请授权时拒绝授权,使应用部分功能无法使用,应该向用户解释授权的目的
  • 开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)
    • 一般是让产品经理提供定位的目的
    • 示例图:


      定位权限请求3.png

iOS 8.0+ 的定位适配

  • 从iOS 8.0开始,苹果进一步加强了对用户隐私的保护。
  • 当APP想访问用户的隐私信息时,系统不再自动弹出一个对话框让用户授权
  • 解决方案:
    调用iOS 8.0的API,主动请求用户授权
// 请求允许在前后台都能获取用户位置的授权
- (void)requestAlwaysAuthorization
// 请求允许在前台获取用户位置的授权
- (void)requestWhenInUseAuthorization
  • 务必在info.plist文件中配置对应的键值, 否则以上请求授权的方法不生效

    • NSLocationAlwaysUsageDescription :允许在前后台获取GPS的描述
    • NSLocationWhenInUseDescription : 允许在前台获取GPS的描述

iOS 9.0 定位

  • iOS 9.0 如果当前处于前台授权状态,默认是不可以后台获取用户位置。
    • 但可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条
@property(assign, nonatomic) BOOL allowsBackgroundLocationUpdates
  • 使用注意:必须设置对应的后台模式:location updates
  • iOS 9.0 可以单次请求用户位置
- (void)requestLocation
- (void)locationManager:(nonnull CLLocationManager *)manager didUpdateLocations:(nonnull NSArray<CLLocation *> *)locations  // 成功调用
- (void)locationManager:(nonnull CLLocationManager *)manager didFailWithError:(nonnull NSError *)error // 失败调用

相关文章

  • iOS Plist文件中常用的字段

    网络请求 定位: 权限:

  • 定位权限请求

    定位权限请求 从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权要想获得用户的...

  • 请求定位权限

    作者:IOSCREATOR,原文链接,原文日期:2016-10-13译者:冬瓜;校对:Cwift;定稿:CMB 在...

  • iOS - Core Location

    定位权限是否可以使用 定位权限授权状态 定位授权状态请求 下面两个方法只有在 authorizationStatu...

  • 6.0权限适配

    1. 相关概念 正常权限:网络、WiFi、音量等权限;危险权限:读写SDK、访问通信录、定位等权限; 请求的...

  • iOS 定位权限不弹窗问题

    需要在plist文件添加你需要的定位权限info 并且手动调用根据你定位权限info同等请求弹窗的函数 例如: _...

  • iOS-CoreLocation框架的定位和逆地址解析详解

    一、权限问题 在iOS8以后,应用定位需要获取用户授权,我们可以请求的定位权限有两种:1.仅在使用时定位reque...

  • iOS 11 定位权限弹窗不显示

    iOS 11 定位权限弹窗不显示-官方链接 百度SDK 升级之后,定位权限弹窗不显示,原因是苹果要求调用请求。 r...

  • iOS开发常用权限汇总

    主要总结下以下常用权限的获取及请求授权用法等(均不考虑iOS8以下系统):网络权限 推送权限 定位权限 通讯录权限...

  • 简短代码实现原生定位

    1、首先在info.plist文件中加入权限声明。请求用户获取定位能力 2、大体思路。 定位需要用户设备打开定位功...

网友评论

      本文标题:定位权限请求

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