码迷,mamicode.com
首页 > 移动开发 > 详细

地图定位IOS8之后的定位

时间:2015-09-11 14:08:28      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

从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之后的定位

标签:

原文地址:http://www.cnblogs.com/syios/p/4800613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!