【问题标题】:didRangeBeacons is called even beacon is off即使信标关闭,也调用了 didRangeBeacons
【发布时间】:2017-07-06 15:35:11
【问题描述】:
我正在使用可以监控附近信标的 swift 3.0 实现 IOS 应用程序。我有一个与 didRangeBeacon 函数有关的问题,详细重现以下步骤:
1- 应用程序已进入信标区域
2- 信标关闭
3- 在接下来的 10 秒内,didRangeBeacon 函数仍然被调用并且响应仍然有一个信标对象。
所以我无法立即识别信标已关闭。如何识别信标立即关闭?
【问题讨论】:
标签:
ios
swift3
ibeacon
clregion
【解决方案1】:
对于 iBeacon,区域由一个或多个信标的范围定义。与常规地理围栏相比,这允许更高的粒度和精度——后者基于来自手机信号塔、WiFi 和 GPS 的混合信号。信标地理围栏的响应速度也更快:“进入”事件通常需要几秒钟才能触发,“退出”事件最多需要 30 秒。 (根据 CLLocationManager 的文档,常规地理围栏“平均需要 3 到 5 分钟”。)
测试“进入”事件涉及确保您在该区域“之外”。启用“翻转睡眠”可以轻松模拟超出范围。 “进入”事件最多需要几秒钟才能触发,而“退出”事件最多需要 30 秒。
区域监控很慢,你可以用它来做更一般的通知让你知道。您可以使用此信号强度来决定您是否不再看到信标(CoreLocation 在信标消失几秒钟后往往仍会“看到”信标)。