gpt4 book ai didi

ios - iBeacon 案例 - 触发具有距离限制的 didEnterRegion

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:53 26 4
gpt4 key购买 nike

对于特定的业务案例,我想通过利用 iBeacon 技术来触发基于接近度的通知(推送或 UILocalNotification)。这是为了在应用程序处于后台/锁定屏幕时工作。

我有一些特定的限制:

  • 该产品必须在特定级别进行扩展,因此不可能涵盖 20 个区域。我们将仅使用一个 UUID(如果我们开发一组新功能,可能是 2 或 3 个,但我们不会为每个物理信标注册一个区域)

  • 我们将使用 major 和 minor 来调用 webservices

  • 关于这一点,我知道我将不得不使用以下方法:首先 didEnterRegion:没有关于主要/次要/距离的先验信息,然后 didRangeBeacon:执行更高级的操作。考虑到信标的快速发射率,我已经使用本地存储机制来使信标超时。

    * 主要限制:我们必须根据信标的距离对事件进行区域划分(例如,仅在 CLProximityImmediate 时触发通知)

现在我看到了一个主要的限制。由于我的应用在进入某个区域后只会在背景中停留几秒钟,如果我有基于距离/接近度的限制,应用很可能会:

  • 在用户离物理信标足够近以触发事件之前返回后台状态
  • 永远不会再次触发,因为它必须再次进入该区域进行测距,这很可能不会发生

对于这种情况,您有什么想法/解决方法吗?

最佳答案

对于 CoreLocation 适用于此用例的限制,您完全正确。如果您按照您的描述进行设置,典型的行为是该应用程序将在未知距离(通常是最大范围约 50 米)处检测到背景中的信标,范围在背景中持续约 5 秒,然后应用程序将被 iOS 暂停。这五秒的测距时间通常不足以让用户足够靠近信标以触发您的用例。

不幸的是,标准信标和 CoreLocation 没有简单的解决方法。 CLBeaconRegion 对象没有像 CLCircularRegion 对地理围栏所做的那样的距离场.

您可以尝试两种更极端的方法:

  1. 一旦您检测到设备距离太远,请立即关闭对您所在区域的监控,然后在您的应用程序在 applicationWillResignActive: 回调中暂停时立即重新启用它。您可能会得到一个新的进入事件和更多的背景测距时间。

  2. 使用定期停止传输的非标准信标来触发强制退出/进入事件。

关于ios - iBeacon 案例 - 触发具有距离限制的 didEnterRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25697855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com