地图定位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,发现没有 ...
随机推荐
- 使用扩展方法简化RadAjaxManager设置
相对于RadAjaxPanel,RadAjaxManager提供了更精确控制更新目标的设置,特别是在某些场景下,使用RadAjaxManager能够获得更好的性能. 但是,由于要明确设置目标,配置的代 ...
- Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法
使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS.原来在Windows Server上有一个存在大量数据的MySQL数据库.现在需要在Amazon RDS上还原这个My ...
- windows 配置 apache + php
需要工具 apache 下载地址 php for windows (与apache同版本,使用线程安全)下载地址 vc (Visual Studio C++) 根据 apache 与 php 的版 ...
- SQL Server里的闩锁介绍
在今天的文章里我想谈下SQL Server使用的更高级的,轻量级的同步对象:闩锁(Latch).闩锁是SQL Server存储引擎使用轻量级同步对象,用来保护多线程访问内存内结构.文章的第1部分我会介 ...
- Java虚拟机9:Java类加载机制
前言 我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用.而虚拟机如何加载这些.class文件?.class文件的信息 ...
- 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结
5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...
- java提高篇(七)-----关键字static
一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员 ...
- 将整数转换成二进制的java小程序
首先我们知道,将整数转换成二进制是将整数除二取余将最后除得的数和得到的余数从下向上写,组成得到的二进制数. java程序实现如下: public class ChangeToErjinzhi { pu ...
- vpn establish capability from a remote deskstop is disabled错误的解决办法
使用Cisco的VPN时,有时候会提示vpn establish capability from a remote deskstop is disabled.这样的错误,解决办法就是重启本机的Remo ...
- [问题解决]安装 SQL Server 无法开启NetFx3.5 的错误
谷歌了一下,该问题是由于系统中缺少.Net3.5相关特性造成的.需要手动安装一下3.5的环境 解决办法: Windows 徽标键+R打开运行窗口 输入Dism /online /enable-feat ...