因为最近负责的项目需要实现实时定位的功能,所以研究了下与大家分享下成果.
苹果官方在iOS7.1以后对CoreLocation SDK进行更新,允许开发者在App被杀死的情况下,仍然可以获取用户的地理位置并且做一些操作.
前期准备:
打开后台定位功能
plist文件配置这两项
接下来是最核心的地方,创建一个CLLocationManager子类:
.h文件
CLLocationManager.h
.m文件
单例的生成与初始变量的初始化
最重要的部分:
限制触发机制
最后是AppDelegate初始化,在app被杀死的情况下,地理位置发生重大变化,apple系统会自动帮你唤醒app:
初始化
好了,所有配置都已经准备好了,现在让我们开始测试下,打开模拟器Debug-Location-FreewayDriver,然后后台杀死App,我这边是通过沙盒记录地理位置,通过tableview显示:
蓝色的为App前台记录的地理位置,红色为被杀死情况下记录的位置
本博文参考自Ricky的博文.
中文参考 .