我目前正与我的开发人员进行讨论,我们正面临一个问题。
我们正在开发一个应用程序,当用户在GPS位置跟踪器中的某些纬度和经度附近时应该找到要约。它应该在用户靠近某个位置时发送推送通知。
问题是,当应用程序处于“打开”状态时,它可以正常运行,但是当用户“退出”应用程序时,应用程序应该进入“后台模式”并且仍然可以找到用户的GPS位置并发送回我们的网络服务背景模式。
这怎么可能?
这是解决方案吗?你有更好的解决方案吗? 1.首次用户启动应用程序,我们找到用户的位置,并打电话给webservice,以获得100公里附近的地方,并将其保存到本地存储,包括。用户唯一的deviceID(UDID)。
用户退出应用程序 - 此处应该在backgroundMode中运行。
用户在我们的本地存储数据库中靠近纬度和经度的位置,现在我们从本地存储区向用户设备发送推送通知。
我们每隔20分钟打电话给应用程序刷新当前lng和lat的所有位置以保持更新,
答案 0 :(得分:0)
当用户进入这些区域时,您可以预先配置要通知的应用区域,而无需将应用置于前台。
因此,请使用上述api获取您感兴趣的地点并注册这些地点,然后当您的应用程序恢复生机时,请关闭您附近的任何内容。
在iOS中,您在位置管理器中注册的区域仍然存在 在您的应用程序启动之间。如果发生区域穿越 当您的iOS应用未运行时,系统会自动唤醒它 在后台启动(或重新启动),以便它可以处理 事件。重新启动时,您之前配置的所有区域 在任何位置的monitoredRegions属性中都可用 你创建的经理对象。
答案 1 :(得分:0)
您正在寻找的功能是 GeoFencing ,而不是推送通知。它将为特定坐标创建一个虚拟围栏,当用户进入特定距离(比如5km)时,它将调用一些委托方法。因此,我们可以使用必要的消息实现本地通知。
我认为你的解决方案很复杂,我建议你继续 GeoFencing
在这里找到一个不错的教程
http://www.creativebloq.com/ipad/get-started-geofencing-ios-9122867