调用 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是否已经不在周边了。
谢谢。
1.ios会有这样的问题么?只增不减。
2.onBeaconUpdate的意思是会回调新发现的设备信息,这里返回整个列表确实不太合理,我们这边讨论下怎么改。
3.这里离去设备的发现逻辑应该是有小程序这边去做噢,因为只有新设备发现的信息,那么只能从discoverTIme或者rssi去判断。
这rssi有实时返回的,discoverTIme小程序可以计算得出。
1,ios我没测不清楚
2,希望尽快修改
3,小程序如何计算discoverTIme?请指教。谢谢,急用。
那帮忙试试哈,thx.
3. 回调时对比之前的值是否有变化,判断是否更新过,比较难搞。
你的意思是 onBeaconUpdate 会始终返回之前发现的 beacon,即使 beacon 已经不在周围了?
是啊。社区也有其他人反映过这个问题。
你好,你的反馈我们已收到,我们会在后续的版本中考虑增加类似功能。