收藏
回答

wx.startBeaconDiscovery调用后beacon只增不减

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.startBeaconDiscovery 客户端 Android 6.7.0 2.2.1

调用 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 个回答

  • Tummy
    Tummy
    2018-08-03

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


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


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

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

    2018-08-03
    有用
    回复 3
    • 浴风咏归
      浴风咏归
      2018-08-03

      1,ios我没测不清楚

      2,希望尽快修改

      3,小程序如何计算discoverTIme?请指教。谢谢,急用。

      2018-08-03
      回复
    • Tummy
      Tummy
      2018-08-03回复浴风咏归
      1. 那帮忙试试哈,thx.

         3. 回调时对比之前的值是否有变化,判断是否更新过,比较难搞。    

           

      2018-08-03
      回复
    • 茶馆佬
      茶馆佬
      2023-11-14回复Tummy
      这个问题是否已经优化呢?
      2023-11-14
      回复
  • 白开水
    白开水
    2018-08-03

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

    2018-08-03
    有用
    回复 1
    • 浴风咏归
      浴风咏归
      2018-08-03

      是啊。社区也有其他人反映过这个问题。

      2018-08-03
      回复
  • 灵芝
    灵芝
    2018-08-03

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

    2018-08-03
    有用
    回复
登录 后发表内容