最近终于回归iOS了,一会来就碰到了定位相关的功能要求,客户要求即使应用挂起也可以执行GPS定位,并在位置发生变化时根据你的需要唤醒应用。
稍微研究了一下,实现方式跟音频后台播放类似,在应用的plist里添加后台运行设定即可。
Apple官方说明原文:
An app that provides continuous location updates to the user (even when in the background) can enable background location services by including the UIBackgroundModes key (with the location value) in its Info.plist file. The inclusion of this value in the UIBackgroundModes key does not preclude the system from suspending the app, but it does tell the system that it should wake up the app whenever there is new location data to deliver. Thus, this key effectively lets the app run in the background to process location updates whenever they occur.
实现方法是,在应用的info.plist里找到【Required background modes】项,在其中添加如下item: 【App registers for location updates】。
当上述设定完成后,只要你在应用中打开了GPS定位功能,即使程序挂起,仍然能够获取GPS定位信息。
有两点问题需要注意:
- 后台运行GPS定位非常消耗电量,所以建议在后台使用时降低GPS定位精度以节省用电,并确定你的用户确实需要这个功能,并在应用中给出提示说明。
- 后台运行GPS定位有时间限制,大约10分钟时间,超过时间后系统会终止后台定位。
【链接】iOS提交AppStore两次因为2.16项不符合被拒(UIB
https://www.zhihu.com/question/40042751?appinstall=0
网友评论