需求:不知是过去的某一天,产品汪汪给我说“.....需要定位数据,我们需要每隔一个小时上报一次定位位置.......”。当我听到这个需求的时候,一脸茫然。本人最不喜欢的就是写地图和定位啦。👶不🤗啦!由于是一个人开发,没办法只能硬着头皮写啊。刚开始各种百度各种寻找思路呀、痛苦呀。什么应用处于后台,在一定时间内系统要回收资源。什么玩意,反正是一头露水。
根据各位大神的分享有👇几条思路:
1.创建很多任务,在系统♻️之前创建一个新的任务。这样如此循环。最终,我没成功。
2.描述不清楚了,详情了解iOS开发 - 百度地图后台持续定位。最终,我还是没能成功。
3.加一个无声音频一直播放。最终,我终于成功了。问题来了,打电话类似的情况下打断播放。这个问题还好解决,音频代理可以很好的处理。又有一个问题,如果开启另一个音频播放软件,并且一直播放呢?性能方面也很差,还怕审核悲剧。等等问题太多啦。最终,我放弃这个方法啦。
4.让接口可以写一个推送消息,每隔一个小时告诉APP你需要发送定位消息啦。这只是我们的想想。最终,我没有去验证是否行得通。
还有零零散散的想法,我就记不到啦。
👇说说我最终成功的思路:
1.在plist设置定位权限配置。设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)
2.开启进入后台需要定位服务。选择project --> capabilities-->Backgorund Modes --> Location updates 如图:
3.创建CLLocationManager,设置相应的属性。
4.设置CLLocationManager的代理中设置定时器。
只需要👆四步后台持久定位不再是难题啦。💪💪!
Demo-持久定位