wx.startBeaconDiscovery 是循环调用 ?还是只调用一次
例如 : setInterval( function(){
wx.startBeaconDiscovery ()
wx.getBeacon() or wx.onBeaconUpdate()
wx.stopBeaconDiscovery()
} ,1000)
还是 wx.startBeaconDiscovery ();
setInterval( function(){ wx.getBeacon() } ,1000)
or wx.onBeaconUpdate();
longtime...... wx.stopBeaconDiscovery();
是的。
ps:重复调用start没有多大意义,调用一次就会持续进行扫描了。
但是请问,不反复调用wx. startBeaconDiscovery会导致beacon只增不减的问题如何解决?
看了 其他相关的问题描述,猜测 API 存的 信息是一个list表单,getBeacon 是得到这个表单,应该只有长度变化,beaconsUpdate 只是更新了这个表单里面有变化的数据。那么如果是想清空表单,就得重新 开启扫描。也不知道对不对。。
我也感觉是这样。如果想得到更新的列表,就得不断循环调用wx. startBeaconDiscovery 和 wx.stopBeaconDiscovery , 但这两个API很耗时,实测会导致约30秒的无反应期,在此期间不会返回任何beacon
要控制好 ,开与关的时间差, 地狱调试把
不调用wx.stopBeaconDiscovery关闭存在一个问题,就是已经不在附近的beacon仍然会在
wx.onBeaconUpdate 或 wx.getBeacons
调用时返回。似乎存在一个缓存,只增不减。
必须调用wx.stopBeaconDiscovery,再次调用wx.startBeaconDiscovery,才能清除原来缓存的数据。