【问题标题】:IOS App in Background?IOS应用程序在后台?
【发布时间】:2013-10-08 19:23:39
【问题描述】:

我目前正在与我的开发人员进行讨论,但我们遇到了一个问题。

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

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

这怎么可能?

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

  1. 用户退出应用程序 - 在这里它应该在 backgroundMode 下运行。

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

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

【问题讨论】:

    标签: ios cordova gps


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 感谢您的回答。你能告诉我如何正确地执行第 3 步吗?我怎样才能每 20 分钟/30 分钟“刷新”所有地方(因为每天都会来很多)?
      • 你的坐标在移动吗?
      • 你需要定位的地方在移动吗?
      • 不,不动。但是如果有新的职位/地方需要“刷新”,我们该怎么做呢
      • 我们正在为此监控注册每个位置。所以每当你创建一个新的位置,它也需要注册监控。你不用担心任何清爽。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2012-05-27
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多