IOS App在后台?

时间:2013-10-08 11:09:17

标签: ios cordova gps

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

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

问题是,当应用程序处于“打开”状态时,它可以正常运行,但是当用户“退出”应用程序时,应用程序应该进入“后台模式”并且仍然可以找到用户的GPS位置并发送回我们的网络服务背景模式。

这怎么可能?

这是解决方案吗?你有更好的解决方案吗? 1.首次用户启动应用程序,我们找到用户的位置,并打电话给webservice,以获得100公里附近的地方,并将其保存到本地存储,包括。用户唯一的deviceID(UDID)。

  1. 用户退出应用程序 - 此处应该在backgroundMode中运行。

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

  3. 我们每隔20分钟打电话给应用程序刷新当前lng和lat的所有位置以保持更新,

2 个答案:

答案 0 :(得分:0)

当用户进入这些区域时,您可以预先配置要通知的应用区域,而无需将应用置于前台。

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

因此,请使用上述api获取您感兴趣的地点并注册这些地点,然后当您的应用程序恢复生机时,请关闭您附近的任何内容。

  

在iOS中,您在位置管理器中注册的区域仍然存在   在您的应用程序启动之间。如果发生区域穿越   当您的iOS应用未运行时,系统会自动唤醒它   在后台启动(或重新启动),以便它可以处理   事件。重新启动时,您之前配置的所有区域   在任何位置的monitoredRegions属性中都可用   你创建的经理对象。

答案 1 :(得分:0)

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

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

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

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