我已经创建了一个用于检测信标的应用程序。事情进展顺利。我遇到的问题是: 当有更多信标相互重叠时。考虑到这个情况,我应该如何处理这种情况 1. 当我们只想在进入信标时从特定信标接收一次报价/我们处于多个信标相互重叠的地方。
谢谢,
最佳答案
当您有重叠的 iBeacon 时,设计 iBeacon 标识符(UUID、主要、次要)和用于监控它们的 CLBeaconRegions
非常重要,这样您就可以获得想要的结果。
是否要在检测到任何重叠的 iBeacon 时触发“报价”?如果是这样,然后监视匹配它们的 CLBeaconRegion
,可能通过设置 UUID(如果所有信标都共享该值,则可能是主要的。)在这种情况下,您只会得到 一个 当检测到其中任何一个时,区域进入通知。您不会为每个重叠的 iBeacon 获得一个。
如果您只想在检测到一个重叠 iBeacon 时触发“offer”,那么监控一个只匹配那个 iBeacon 的 CLBeaconRegion
,通常通过指定 UUID,major ,并在 CLBeaconRegion
中次要。当然,你还需要保证每个iBeacon都配置了不同的minor。还要记住,如果需要,您可以同时监视多个 CLBeaconRegions
,并为每个都获得特定的回调。
虽然这是与重叠 iBeacon 不同的问题,但如果您真的希望用户“只收到一次优惠”,您还需要在检测回调中添加一个过滤器。 iOS 中的一个小故障有时会给你一个非常快速的退出区域回调,然后几乎是瞬时的进入区域回调。为了防止用户第二次收到优惠,保存上次优惠推送给用户的时间戳,只有在足够的时间过去后(比如 1 小时或一天)才再次推送。 See this answer for details.
关于ios - 如何处理相互重叠的 iBeacon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252344/