当应用程序处于后台时,我需要计算从用户位置到特定位置的距离,并据此获得本地通知。
后台位置跟踪是完全可能的,我已经做到了,但是是否可以执行一段代码,包含一些条件检查并基于该更新并获得本地通知?
我没有得到任何适当的解决方案。有什么办法吗?
你能帮我吗?
从位置感知编程指南开始。您需要知道的大部分内容都在其中。(对于 AppStore 应用程序来说,大多数不存在的东西根本不可能。)另请参阅iOS 应用程序编程指南中的跟踪用户位置。
您所描述的最佳工具可能是“基于形状的区域”。你基本上可以在地图上画一个框,然后说“当用户进入或离开这个框时,让我知道”。如果可能的话,这是您应该使用的工具。它对电池寿命的影响最小。
如果您绝对无法以任何其他方式解决问题,则请求使用后台位置传递startUpdatingLocation
(以及 Info.plist 中的适当后台模式;请参阅上述文档)是合法的。在您徒步旅行时跟踪您的路线的应用程序将适合这种设置。但是如果可能的话,你应该避免它,因为它是一个主要的电池消耗。
是的,你绝对可以做到。我现在正在一个应用程序中执行此操作。如前所述,使用显着的位置变化或区域,以尽可能减少用户电池的压力。
我们观察区域(以及设备不支持区域的重大位置变化),然后检查一些事情并在需要时发出本地通知。
我们从一个基本原型开始来证明这个概念,我强烈推荐这种方法作为熟悉位置和通知框架的一种方式。
您需要在后台更新重要位置:http: //mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/。然后,您将需要基于此创建位置通知。
我的问题是我不确定您是否可以在后台创建本地通知。