地图定位IOS8之后的定位
从ios8开始,苹果进一步加强了对用户隐私的保护。
当app想要访问用户的隐私信息时 系统不再自动弹出一个对话框让用户授权
解决方法:
(1)调用ios8.0的API 主动请求用户授权
- (void)requestAlwaysAuthorization //请求允许在前后台都能获取用户位置的特权
- (void)requestWhenInUseAuthorization //请求允许在前台获取用户位置的特权
那么现在我们开始使用着两个方法:
我们本此奖的项目 使我们上一次ios8之前的定位那个项目 我们只需要做稍微的改动即可:
1.首先将我们的部署版本切换到8.4
2.然后再我们的ViewController.m文件 的懒加载位置管理者中加上以下代码:
3.将模拟器切换到6
4.允许程序
我们点击屏幕 你会发现 什么都没做 没有弹出哪个框
那这个是什么原因呢?
我们进入这个方法的头文件看看
看到这句话了吗?
这句话的意思是说如果你的info.plist文件中没有这样的key: NSLocationWhenInUseUsageDescription 那么这个方法什么也不会做
所以现在我们在info.plist文件中配置这样的key
配置好之后 我们再次允许程序看看
现在就可以了 我们点击allow
然后点击屏幕 ,你会发现控制台没有打印任何信息,这个问题是模拟器的问题 我们只需要将模拟器重启一下就可以了
重启模拟器方法如:
然后我们重新运行程序 你就会发现 可以了:
注意这个:requestWhenInUseAuthorization 方法默认情况下 波可以在后台获取位置 需要勾选后台模式
这个时候我们允许程序 将程序退到后台 看看效果
看到区别了吗? 会出现一个蓝色的条
以上是使用requestWhenInUseAuthorization 进行定位授权 接下来我们看看requestAlwaysAuthorization前后台授权
他跟requestWhenInUseAuthorization 的区别就是 不需要勾选后台模式 并且不会出现蓝色的条
同时他也需要在info.plist文件中配置如下的key :
我们配置下
我们简单修改下代码 将前后台授权打开:
然后我们运行程序:
发现退到后台依然可以定位
最后要提醒的就是以上两个方法 都是ios8.0的方法 所以如果你是运行在8.0之下的话会报方法找不到的错误,所以如果你要做适配的话
需要判断系统当前的版本号
到此位置 我们ios8.0之后的 就讲这么多了
地图定位IOS8之后的定位的更多相关文章
- 地图定位IOS8.0之前的定位
在ios8.0之前定位的步骤如下: 1.首先将我们的项目版本切换到7.0
- Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用
转载请注明出处http://blog.csdn.net/xiaanming/article/details/11380619 这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOv ...
- 如何利用【百度地图API】进行定位?非GPS定位
原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...
- Ios8之后, 定位的delegate不能触发的问题
if([CLLocationManager locationServicesEnabled]){ self.locationManage = [[[CLLocationManager alloc] i ...
- iOS8中的定位服务
iOS8中的定位服务 My app that worked fine in iOS 7 doesn't work with the iOS 8 SDK. CLLocationManager doesn ...
- android的百度地图开发(二) 定位
参考:http://blog.csdn.net/mr_wzc/article/details/51590485 第一步,初始化LocationClient类 //获取地图控件引用 mMapView = ...
- 地图之CLLocationManager的使用 定位功能使用
1.iOS8曾经使用CLLocationManager 1.导入头文件 <CoreLocation/CoreLocation.h> 2.创建位置管理者 CLLocationManager ...
- (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)
目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ...
- 百度sdk定位不成功,关闭定位
公司项目有用到百度地图,登录的时候需要定位一次,获取登录的地址信息,在手机无法连接外网的情况,也就无法访问百度定位服务器的时候,定位的回调函数要30秒以上才能返回结果,于是去仔细查百度api,发现没有 ...
随机推荐
- SQL入门经典(七) 之脚本和批处理
什么是脚本.我们前面学的CREATE TABLE <table name> ,USE <database name>这些都是脚本,为什么用脚本.脚本存储到文件中并且可以重复利用 ...
- apache httpclient CacheStorage的一个自定义实现
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- PC远程调试移动设备
我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题——调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...
- 100天后 - 100-days-later
赛斯·高汀(Seth Godin)的博客: http://sethgodin.typepad.com/seths_blog/2013/04/100-days-later.html 面对着数以千计的图 ...
- 《OOC》笔记(4)——自动化地将C#代码转化为C代码(结构版)
<OOC>笔记(4)——自动化地将C#代码转化为C代码(结构版) 我在<C表达面向对象语言的机制——C#版>中已经说明了从C#到C的转换方法.这次看<OOC>也是想 ...
- PHP变量作用域
PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖,这可能引起一些问题,有些人可能不小心就改变了一个全局变量.PHP 中全局变量在函数中使用时必须 ...
- 如何把IP转换成经纬度(Java版)
经常有这种需求,拥有用户的IP地址,想要在地图上显示用户的访问量.这个时候就需要用到经纬度...应为一般的地图插件都是基于经纬度的. 那么问题来了,如何把IP转换成经纬度? 百度API 最国产的方式, ...
- struts2学习笔记之十三:自定义过滤器
Struts2的拦截器 1.Struts2的拦截器只能拦截Action,拦截器是AOP的一种思路,可以使我们的系统架构 更松散(耦合度低),可以插拔,容易互换,代码不改变的情况下很容易满足客户需求 其 ...
- Node.js入门:异步IO
异步IO 在操作系统中,程序运行的空间分为内核空间和用户空间.我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务. 同步IO的并行模式 ...
- Atitit J2EE平台相关规范--39个 3.J2SE平台相关规范--42个
Atitit J2EE平台相关规范--39个 3.J2SE平台相关规范--42个 2.J2EE平台相关规范--39个5 XML Parsing Specification16 J2EE Conne ...