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