即使用户覆盖50米,当应用程序未在ios10的后台运行(暂停)时,如何每隔n秒获取当前的GPS位置?

时间:2017-01-02 12:59:41

标签: ios objective-c iphone core-location ios10

我正在使用示例项目https://github.com/voyage11/Location创建基于位置的移动应用。我正在将收到的位置保存在本地数据库中,并在应用程序进入前台时在地图上显示位置。 问题是 - 当设备连接电源时,应用程序正常工作,当我从充电中删除设备时,不再收到位置更新(我的应用程序在从后台暂停时无法正常工作)。

2 个答案:

答案 0 :(得分:0)

你做不到。 您可以使用的最好方法是startMonitoringSignificantLocationChanges方法,它可以在应用程序处于后台时获取位置。 这是文档: https://developer.apple.com/reference/corelocation/cllocationmanager/1423531-startmonitoringsignificantlocati

答案 1 :(得分:0)

从后台获取连续位置更新的唯一方法是将您的应用注册为导航应用。这将允许您持续监控用户的位置,但请注意GPS使用大量电力,您将很快耗尽用户的电池。

正如@GhazyDENDEN在回答中所说,可以使用重要的位置更改API,但这只会在手机移动相当长的距离时为您提供更新(有关详细信息,请参阅文档)如果手机静止不动,你将无法获得任何更新。

此外,当您将应用程序提交到应用程序商店时,Apple可能会认为它不符合导航应用程序的资格,并且可能会拒绝它。我建议在开发过程的早期解决这个问题,这样你就不会浪费大量的开发时间,然后被拒绝。