iOS 9适配系列教程:后台定位

【iOS9在定位的问题上,有一个坏消息一个好消息】坏消息:如果不适配iOS9,就不能偷偷在后台定位(不带蓝条,见图)!好消息:将允许出现这种场景:同一App中的多个location
manager:一些只能在前台定位,另一些可在后台定位,并可随时开启或者关闭特定location manager的后台定位。

如果没有请求后台定位的权限,也是可以在后台定位的,不过会带蓝条:

如何偷偷在后台定位:请求后台定位权限:


  1. // 1. 实例化定位管理器 
  2. _locationManager = [[CLLocationManager alloc] init]; 
  3. // 2. 设置代理 
  4. _locationManager.delegate = self; 
  5. // 3. 定位精度 
  6. [_locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
  7. // 4.请求用户权限:分为:?只在前台开启定位?在后台也可定位, 
  8. //注意:建议只请求?和?中的一个,如果两个权限都需要,只请求?即可, 
  9. //??这样的顺序,将导致bug:第一次启动程序后,系统将只请求?的权限,?的权限系统不会请求,只会在下一次启动应用时请求? 
  10. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) { 
  11. //[_locationManager requestWhenInUseAuthorization];//?只在前台开启定位 
  12. [_locationManager requestAlwaysAuthorization];//?在后台也可定位 
  13. // 5.iOS9新特性:将允许出现这种场景:同一app中多个location manager:一些只能在前台定位,另一些可在后台定位(并可随时禁止其后台定位)。 
  14. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) { 
  15. _locationManager.allowsBackgroundLocationUpdates = YES; 
  16. // 6. 更新用户位置 
  17. [_locationManager startUpdatingLocation]; 

但是如果照着这种方式尝试,而没有配置Info.plist,100%你的程序会崩溃掉,并报错:


  1. *** Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-1808.1.5/Framework/CoreLocation/CLLocationManager.m:593 

要将 Info.plist 配置如下:

对应的 Info.plist 的XML源码是:

来源:51CTO

时间: 2024-09-15 18:34:05

iOS 9适配系列教程:后台定位的相关文章

后台定位 百度地图-IOS 百度地图支持后台的持续定位吗?

问题描述 IOS 百度地图支持后台的持续定位吗? IOS 的百度地图支持后台的持续定位吗,如果支持请问这么实现了.新手上路,如有帮助必定万分感谢,忘知道的人可怜一下. 解决方案 貌似ios7以后就有选项支持后台程序刷新数据了 可以的.

Selenium webdriver系列教程(5)—如何定位frame中的元素

在web ui自动化测试中,frame一直是令人头痛的问题,就像上班必须挤公车坐地铁一般,frame的问题总是令人气闷纠结为之黯然神伤. 以前在使用watir 1.6x的时候,frame也是颇为棘手的一个问题.不但要照本宣科的进行一系列的设置,而且在进行实际代码编写的过程中会遇到各种奇奇怪怪的问题.frame就像中国男足的后防线,问题多多难以解决. selenium webdriver处理frame比较简单,这点比某些测试工具要先进一些,令人身心愉悦. 以下面的html代码为例,我们看一下如何定

站外优化系列教程五:全方位了解博客营销基本知识

继前面与大家分享了<站外优化系列教程一:如何寻找高质量外链论坛>.<站外优化系列教程二:确定影响撰写适合推广方案因素>.<站外优化系列教程三:怎么写合理可执行的网站推广方案>.<站外优化系列教程四:全方位了解BBS论坛营销必知12点>四个方面的知识.也是由于现在手上操作的网站在做BBS论坛营销,所以也在接触更多的营销方法,也收集和整理了一些关于博客营销方面的材料,愿意与大家分享.现在以我浅陋的知识,给大家分享一下关于博客营销的基本知识: 博客的概念 博客一词

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(五)实现2D人物动画② 第二种方法我称之为图片截取法,准备工作:这里我以创建主角向右方向施法动画为例.首先需要将10帧150*150的图片通过Photoshop或其他方式合成为一张1500*150的大图,如下图: 从图上可以很清晰的看出主角的整个流畅的施法流程.然后将这张图片保存到项目文件夹中的binDebug文件夹中,如下图: 为什么必须放在这呢?因为后面的代码中BitmapFrame.Create()函数调

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十九)向Silverlight移植① 一.主要改进: 1)Silverlight3.0上的右键实现: //注册右键事件 HtmlPage.Document.AttachEvent("oncontextmenu", Game_MouseRightButtonDown); //鼠标右键事件 private void Game_MouseRightButtonDown(object sender, H

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十九) 人工智能(AI)之追踪者 经过前面28节的不断完善,主角已经具备了MMORPG游戏中的大多数功能:但是其他精灵例如怪物等暂时还是无法行动的,上一节中它们无辜的充当了主角的肉靶子,它们开始呐喊:上帝呀,请给予我们灵魂与智慧吧!其实灵魂早就有了,就是精灵的生命线程.那么该如何赋予精灵智慧呢? 精灵智慧的实现其实就是为精灵赋予AI(人工智能).完整的游戏引擎或多或少都必须拥有一定的AI,例如棋牌类型游戏有着

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统 战斗即将开始!要实现MMORPG中的攻击系统,必须为精灵增加相关的参数及属性,这些内容及它们之间的牵连关系设计决定着游戏的新颖度与耐玩性:就好比当年的传奇,系统再普通不过了,但是却因为有着恰如其分的系统参数设定与完美的世界观定位,成就了一代不朽巨作.那么本节开始,我将首先对精灵控件进行属性完善,使之具传统经典游戏中的角色属性. 首先看下图: 这些属性是目前最经典的角

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十九) 完美精灵之八面玲珑(WPF Only)③ 首先我要对C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十八) 完美精灵之八面玲珑(WPF Only)②中最后的ChangeAction()方法进行一些补充说明.该方法的作用之一是根据精灵的当前动作(Action)来设置精灵切图动画的起始帧和结束帧: 如上图,我们可以很清楚的看到精灵这5个动作所分别对应的CurrentSt

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)完美捕捉精灵之神器 -- HitTest 怪物们都出现了,如何选中自己心仪的怪是主角目前首要做的事. 为了进行鼠标状态区别,我首先对鼠标变化规则进行约束:当鼠标在屏幕上空旷地图区域移动时,鼠标光标形态表现为默认光标 (0号光标图片),当鼠标经过精灵(悬停于其上方)时则变成发光光标(1号光标图片),如果指向的精灵对象为敌对状态时则鼠标光标变为攻击光标(2号光标图片),当使用魔法快捷键时,鼠标光标变成凝法状