zoukankan      html  css  js  c++  java
  • iOS定位权限与使用阐述 (含iOS14定位适配)

    https://www.jianshu.com/p/4541cd070423

    ### 一、前言

        大数据时代,用户对自己的隐私安全越来越关注,所以,随着iOS系统更新,苹果对用户隐私相关(定位、相册、网络、粘贴板等)权限控制持续升级。其中定位权限相关申请API与配置项较多,本文旨在记录说明 iOS8.0 - 14.0beta 从权限申请到获取定位数据流程。

        内容包括定位权限、获取定位数据、定位权限API调用实践。定位权限模块按照系统相关性分别介绍该系统下权限配置与API调用细节、注意事项与表格总结;获取定位数据模块介绍定位关键参数、单次/连续定位等;调用实践模块介绍了从 iOS8.0 - 14.0beta 系统定位权限的适配实践。

    ### 二、定位权限

    #### 1、iOS8.*

    -前台定位

       -需要在info.plist配置NSLocationWhenInUseUsageDescription字段;

       -首次使用定位时,通过API接口requestWhenInUseAuthorization申请应用使用时权限;

    注意:此权限下,如果Xcode勾选 Capabilities -> UIBackgroundModes > Location updates,则app退到后台仍可获取定位数据,但此时在手机上方会有定位小蓝条提示;

    -后台定位

       -需要在info.plist配置NSLocationAlwaysUsageDescription字段;

       -需要Xcode勾选 Capabilities -> UIBackgroundModes > Location updates;

       -首次使用定位时,通过API接口requestAlwaysAuthorization申请应用未使用时权限;

    #### 2、iOS9.*与iOS10.*

    -**前台定位**

       -需要在info.plist配置NSLocationWhenInUseUsageDescription字段;

       -首次使用定位时,通过API接口requestWhenInUseAuthorization申请应用使用时权限,如下图;

     
     

         注意:此权限下,如果Xcode勾选 Capabilities -> UIBackgroundModes > Location updates并且allowsBackgroundLocationUpdates设为YES,则app退到后台仍可获取定位数据,但此时在手机上方会有定位小蓝条提示;

    -**后台定位**

       -需要在info.plist配置NSLocationAlwaysUsageDescription字段;

       -需要Xcode勾选 Capabilities -> UIBackgroundModes > Location updates;

       -需要CLLocationManager设置allowsBackgroundLocationUpdates为YES;

       -首次使用定位时,通过API接口requestAlwaysAuthorization申请应用未使用时权限,如下图;

     
     

    -**与iOS8.*版本相比不同点**

       -iOS9.*后台增加了allowsBackgroundLocationUpdates属性,可以认为在iOS8.*下allowsBackgroundLocationUpdates永远为YES;

    #### 3、iOS11.*与iOS12.*

    -**前台定位**

       -需要在info.plist配置NSLocationWhenInUseUsageDescription字段;

       -首次使用定位时,通过API接口requestWhenInUseAuthorization申请应用使用时权限,如下图;

     
     

    注意:此权限下,如果Xcode勾选 Capabilities -> UIBackgroundModes > Location updates并且allowsBackgroundLocationUpdates设为YES,则app退到后台仍可获取定位数据,但此时在手机上方会有定位小蓝条提示,此小蓝条不可隐藏;

    -**后台定位**

       -需要在info.plist配置NSLocationWhenInUseUsageDescription、NSLocationAlwaysAndWhenInUseUsageDescription字段;

       -需要Xcode勾选 Capabilities -> UIBackgroundModes > Location updates;

       -需要CLLocationManager设置allowsBackgroundLocationUpdates为YES;

       -首次使用定位时,通过API接口requestAlwaysAuthorization申请应用未使用时权限,如下图;

     
     

         注意:此权限下,当app在后台时,系统默认不展示定位小蓝条,可通过showsBackgroundLocationIndicator控制小蓝条是否显示;

    -**与iOS10.*版本相比不同点**

       -iOS11.*变更了后台定位权限配置字段;

       -iOS11.*以后如果申请后台定位,info.plist需要同时配置



    作者:谢见章
    链接:https://www.jianshu.com/p/4541cd070423
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    媒体查询漫谈——@media Queries
    JavaScript工具函数集
    什么是BFC、IFC、GFC和FFC
    HTTP与HTTPS的区别
    reflow 和 repaint
    客户端检测
    ajax
    批量删除
    数据访问
    登录主页面代码
  • 原文地址:https://www.cnblogs.com/itlover2013/p/14991987.html
Copyright © 2011-2022 走看看