0

我目前正在与我的开发人员进行讨论,我们正面临一个问题。

我们正在开发一个应用程序,当用户在 GPS 位置跟踪器中的某些纬度和经度附近时,它应该可以找到报价。当用户靠近某个位置时,它应该发送推送通知。

问题是,当应用程序“打开”时它可以完美运行,但是当用户“退出”应用程序时,应用程序应该进入“后台模式”,并且仍然可以找到用户 gps 位置并在后台模式下发送回我们的 web 服务.

这怎么可能?

这是你有更好的解决方案的解决方案吗?1.用户第一次启动应用程序时,我们找到用户位置并调用webservice以获取100km附近的位置并将其保存到本地存储,包括。用户唯一的设备 ID (UDID)。

  1. 用户退出应用程序 - 在这里它应该在后台模式下运行。

  2. 用户在我们的本地存储数据库中的纬度和经度附近,现在我们从本地存储向用户设备发送推送通知。

  3. 每 20 分钟,我们会调用应用程序来刷新我当前 lng 和 lat 的所有位置,以保持更新,

4

2 回答 2

0

您可以为应用程序预先配置区域,以便在用户进入这些区域时通知应用程序,而无需将应用程序置于前台。

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/occ/instm/CLLocationManager/startMonitoringForRegion

因此,获取您感兴趣的地点并使用上述 api 注册这些地点,然后当您的应用程序恢复生机时,为您附近的任何地方触发通知。

在 iOS 中,您向位置管理器注册的区域在应用程序启动之间保持不变。如果在您的 iOS 应用程序未运行时发生区域交叉,系统会在后台自动将其唤醒(或重新启动),以便处理该事件。重新启动时,您之前配置的所有区域都可以在您创建的任何位置管理器对象的受监视区域属性中使用。

于 2013-10-08T11:16:35.000 回答
0

您正在寻找的功能是地理围栏而不是推送通知。它将为特定坐标创建一个虚拟围栏,当用户进入特定距离(比如 5 公里)时,它将调用一些委托方法。所以我们可以实现一个带有必要消息的本地通知。

我认为您的解决方案很复杂,我建议您继续使用GeoFencing

在这里找到一个不错的教程

http://www.creativebloq.com/ipad/get-started-geofencing-ios-9122867

于 2013-10-08T11:23:39.860 回答