iOS APP中定位服务选项中常用有三种授权状态:1、永不  2、使用应用期间  3、始终

如何让APP同时拥有三种选择?

需要进行以下设置:

在应用的info.plist文件中添加有关定位授权的属性,常使用到的有两个:

1、NSLocationAlwaysUsageDescription

这个关键字的意思是:持续(一直)定位描述,它的值是个NSString类型,填写的就是向用户请求定位授权时给用户看的信息“XXXXX”,目的就是告诉用户:我现在正在向你请求定位功能的授权,之所以要使用你的手机的定位功能是因为XXXXX原因,这是苹果在iOS8开始要求的。

2、NSLocationWhenInUseUsageDescription

这个关键字的意思是:使用期间定位描述,它的值是个NSString类型,填写的内容与上面相似。

这两个属性用到哪个就添加哪个,注意:这两个属性添加时要一字不差,否则APP检测不到该属性,如果两个都添加那么用户会有三种选择,就像上图显示的一样。

关于定位授权状态改变时,应该如何处理:

// 定位失败后执行此方法
- (void) locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{if ( [error code] == kCLErrorDenied ) {//第一次安装含有定位功能的软件时//程序将自动提示用户是否让当前App打开定位功能,//如果这里选择不打开定位功能,//再次调用定位的方法将会失败,并且进到这里。//除非用户在手机的设置页面中重新对该软件打开定位服务,//否则程序只要用到定位就总会进到这里。UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"定位服务已经关闭"message:@"请进入系统【设置】>【隐私】>【定位服务】中打开开关,并允许本应用使用定位服务"delegate:selfcancelButtonTitle:@"确定"otherButtonTitles:nil, nil];[alert show];[_locationManager stopUpdatingLocation];}else if ([error code] == kCLErrorHeadingFailure) {}
}

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {NSLog(@"【注意】 ———— 定位授权的状态将要发生改变!");switch (status) {case kCLAuthorizationStatusNotDetermined: {NSLog(@"定位授权状态:———— 用户还未决定授权状态!"); // 什么都不做,不能进行定位(这种情况常见于第一次安装应用打开后用户还未决定如何选择定位方式)}break;case kCLAuthorizationStatusAuthorizedAlways: {NSLog(@"定位授权状态:———— 已授权一直定位!");if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]){[_locationManager requestAlwaysAuthorization];[_locationManager startUpdatingLocation]; // 开始刷新定位}}break;case kCLAuthorizationStatusAuthorizedWhenInUse: {NSLog(@"定位授权状态:———— 已授权使用期间定位!");if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){[_locationManager requestWhenInUseAuthorization];[_locationManager startUpdatingLocation]; // 开始刷新定位}}break;case kCLAuthorizationStatusDenied: {NSLog(@"定位授权状态:———— 已拒绝定位!");[_locationManager stopUpdatingLocation]; // 停止刷新定位}break;default:{}break;}
}
#else
#endif

iOS定位从 “始终”定位,改变成“使用期间”定位相关推荐

  1. css和 js 改变html里面的定位。

    css和 js 改变html里面的定位.(三种方式) <style type="text/css">#div1{border: 1px aquamarine solid ...

  2. 元素在锚点定位后始终在页面居中显示的方法

    元素在锚点定位后始终在页面居中显示的方法 锚点定位功能可以使我们快速方便地跳转到我们想去的任何位置,但是如果我们在某个元素上添加锚点并跳转后,该元素始终会贴近在浏览器顶部,下面举例说明. 比如说有这样 ...

  3. GPS定位详解——涉及GPS版本变化、定位获取失败等常见问题。

    GPS详解 GPS本身并不复杂,但是因为GPS本身定位比网络还慢的原因用好GPS还是需要费点事的. GPS详解 1. GPS相关类说明(android.location包) 1.1. 主要必须涉及到的 ...

  4. CSS---三大定位方式(相对,绝对,固定定位)

    CSS三大定位方式(相对,绝对,固定定位) [1]相对定位:相对定位是相对于自身而言的定位 <head><meta charset="UTF-8">< ...

  5. 手机室内地磁定位软件_聊一聊神奇的室内地磁定位

    地磁定位的由来 众所周知,我们生活的世界,处处遍布着地球磁场.合理利用这种天赐的资源是生物的本能. 很多鸟类,尤其是迁徙的候鸟,在做长途飞行时都能利用地球磁场来保持其飞行路线不发生偏离,研究发现这些鸟 ...

  6. 加了定位后div不显示了_FANUC主轴定位(M19)后诊断参数445不显示怎么办?

    若你我之间有缘,关注作者又何妨? 两情若是久长时,又岂在朝朝暮暮. 大家好!我是江郎,一个庸庸碌碌的#数控#维修工. 通常情况,在CNC中主轴只是进行速度控制,但是在某些特定的情况下,也需要对主轴进行 ...

  7. 一键学会三种定位布局,相对定位、绝对定位、固定定位!

    定位布局 定位属性: position 作用: 指定元素的定位类型 取值:static 默认不定位相对定位绝对定位固定定位 相对定位 关键字 position:relative 特点:相对不脱离文档流 ...

  8. 高德h5定位误差_#高德地图api移动端定位失败解决方案 #H5 原生Geollocation接口Chomre浏览器的坑...

    侧重:本文探索了 http 协议下,pc + 移动端定位解决方案 IOS版本: ios14 原生Geolocation 接口: Document Show my location function g ...

  9. 史上最全的定位攻略,您应该知道的定位方法。

    0x00 前言:以下讲到的定位方法较多,文章字数较多,请耐心观看. 如有遇到身体不适应,请稍作休息.之后再度观看   0x01 [QQ定位] 1.QQ软件定位 第一种使用QQ2009(此方法不常用)[ ...

最新文章

  1. 华为机试第11题python
  2. Linux 系统的配置文件
  3. 4.1.6 文件的基本操作
  4. Android客户端内置内存工具进行崩溃定位的实践经验
  5. 从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator
  6. 属于服务器操作系统的是,属于服务器操作系统的是
  7. mysql与sim900a_sim900a的应用,基于SIM900A-GPRS模块的远程文件传输实例
  8. 单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序
  9. eNSP模拟器RIP2动态路由,DHCP服务,ACL流控,组合使用的拓扑网络
  10. IT运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理
  11. 机器学习相关资料和书籍推荐
  12. excel自动合并两列
  13. 网络封包编辑器mysql_WapCn网络封包编辑器
  14. BottomNavigationView+ViewPager+Fragment 底部导航按钮
  15. 不懂异或?一文详解移位操作符,位操作符
  16. android实习日志_【安卓开发实习生工作总结_安卓开发实习生个人年终总结】-看准网...
  17. 利用ADB调试工具获取ROOT权限并卸载OPPO手机系统预装软件
  18. PHP中利用PHPMailer配合QQ邮箱实现发邮件
  19. 【iuap5.0特性解读】构建以业务创新和能力沉淀为核心的中台架构体系
  20. 用javascript函数设置延时执行jQuery

热门文章

  1. 垃圾收集算法,垃圾收集器_实时垃圾收集
  2. 【乐逍遥网站设计】2022年网站设计与UI元素的趋势
  3. 提升执行力,小米手环打造TODO神器
  4. vnr光学识别怎么打开_SLS46CK4单光束安全传感器原版使用说明-Leuzeelectronic.PDF
  5. 当前 IT 行业,软件开发应该掌握的几种编程语言,你学会了几种?
  6. 英伟达创始人出生 | 历史上的今天
  7. java pdf与ofd文件相互转换
  8. linux pppd源码下载_LINUX下的拨号利器:wvdial和pppd —— 转载
  9. ping检测整个网段地址在线
  10. 鼠标光标一直在闪烁_多模式、多设备连接---雷柏MT 750S 三模无线激光鼠标评测...