wx.startBeaconDiscovery调用后beacon只增不减
发布于 6 年前 作者 bdu 2519 次浏览 来自 问答

调用 wx. startBeaconDiscovery 后,在调用wx.stopBeaconDiscovery之前,wx.onBeaconUpdate中返回的beacon只增不减。

也就是说即使beacon手机已经读不到了,还继续返回。对于需要及时更新beacon列表的应用来说是个问题。


如果采用不断循环调用wx. startBeaconDiscovery 和wx.stopBeaconDiscovery,那么又太耗时。在华为荣耀10手机上实测会出现约30秒内无任何beacon返回的情况,即使beacon就在手机边上。


因此,建议修改wx. startBeaconDiscovery  API,有2个参考意见可供借鉴:

1,增加输入参数:KeepBeacon,如果为true,就如同现在一样,如果为false,就每次只返回beacon后清空列表

2,增加输出参数: Beacon结构表中增加一个栏位:discoverTime,记录最后一次发现的时间,这样用户可以根据时间判断此Beacon是否已经不在周边了。


谢谢。

3 回复

你好,你的反馈我们已收到,我们会在后续的版本中考虑增加类似功能。

1.ios会有这样的问题么?只增不减。

2.onBeaconUpdate的意思是会回调新发现的设备信息,这里返回整个列表确实不太合理,我们这边讨论下怎么改。

3.这里离去设备的发现逻辑应该是有小程序这边去做噢,因为只有新设备发现的信息,那么只能从discoverTIme或者rssi去判断。

rssi有实时返回的,discoverTIme小程序可以计算得出。

你的意思是 onBeaconUpdate 会始终返回之前发现的 beacon,即使 beacon 已经不在周围了?

回到顶部