收藏
回答

Android “wx.onBeaconUpdate” 接口兼容性问题,不同设备差异较大,如何解决?

我们的微信小程序,用到了蓝牙扫描接口用于定位及导航。发现有个安卓兼容性问题——更新接口 wx.onBeaconUpdate 在不同安卓手机上差异较大。

在部分手机上表现较好,基本1秒左右周期返回搜索周边蓝牙(蓝牙设备:固定发射频率为 次/200ms)。但在个别手机上表现较差,体现在两个方面:

1.  回调周期不确定,有些手机较慢, 如1.2秒回调一次;

2. 有扫描不到或回调丢失情况,个别手机出现在几秒或更长时间内回调一次,漏掉不少蓝牙设备;


请问导致这两个问题的主要原因是什么,及如何解决?


发现问题设备及对应微信版本:

1. 谷歌pixel,微信版本:7.0.7

2. 荣耀magic2 (tny al00),微信版本号: 7.0.7


最后一次编辑于  2019-10-22
回答关注问题邀请回答
收藏

1 个回答

  • 灵芝
    灵芝
    2019-10-22

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    另外,在手机微信上传日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供出现问题的微信号,出现问题的时间点(具体到分钟)

    2019-10-22
    有用
    回复 3
    • 2019-10-23
      问题手机:谷歌pexel, 系统版本:Android 8.1.0
      微信版本号:7.0.7, 出现问题的微信号:gx17396257759 (用其他微信测试也一样)
      微信日志已上传!

      问题修正:
      我们用的小程序,内嵌H5页面,使用jsapi sdk相关接口扫描蓝牙。 

      问题描述:
      蓝牙扫描回调接口周期不定,从1 ~ 10 多秒,都有可能。偶有更长时间不回调情况。

      代码片段如下:
          function startSearchBeacons() {
              wx.startSearchBeacons({
                  ticket: "",
                  complete: function (argv) {
                      switch (argv.errMsg) {
                          case 'startSearchBeacons:ok':
                          case 'startSearchBeacons:already started':
                              onSearchBeacons();
                              break;
                          case 'startSearchBeacons:bluetooth power off':
                          case 'startSearchBeacons:location service disable':
                          case 'startSearchBeacons:system unsupported':
                              console.log('蓝牙未打开或者服务被关闭或者不支持');
                              break;
                          default:
                              console.log('未知错误');
                              break;
                      }
                  }
              });
          }
         
          /**
           * 获取蓝牙信息
           */
          function onSearchBeacons() {
                     wx.onSearchBeacons({
                  complete: function (argv_info) {
                      let get_curr_beaconInfo = argv_info.beacons;
                      console.log(get_curr_beaconInfo);
                  }
              });
          }
      let http_url = 'https://xxx.xxx.xxx';
          let init_info = ['checkJsApi', 'startSearchBeacons', 'stopSearchBeacons', 'onSearchBeacons'];
          nativeAjax({
              url: http_url + '/checkXcxMapSign',
              type: 'GET',
              dataType: "json",
              data: {
                  "url": encodeURIComponent(window.location.href.split('#')[0])
              },
              async: false,
              success: function (res, xml) {
                  if (res) {
                      let data = res.data;
                      wx.config({
                          debug: false,
                          appId: data.appId,
                          timestamp: data.timestamp,
                          nonceStr: data.nonceStr,
                          signature: data.signature,
                          jsApiList: init_info
                      });
                      wx.ready(function () {
                          //获取蓝牙信息
                          startSearchBeacons();
                      });
                      wx.error(function (res) {
                          console.log('初始化错误')
                      });
                  } else {
                      console.log('初始化错误2')
                  }
              },
              fail: function (status) {
                  console.log('初始化数据错误')
              }
          });
      2019-10-23
      回复
    • 灵芝
      灵芝
      2019-10-23回复
      该H5页面不在小程序内使用是否有同样的问题?
      2019-10-23
      回复
    • ...
      ...
      2021-05-28回复
      你好,贵公司这个问题有得到解决吗。我也遇到了这个问题
      2021-05-28
      回复
登录 后发表内容
问题标签