编程语言
首页 > 编程语言> > 微信小程序iBeacon获取问题(wx.onBeaconUpdate不执行)【已解决】

微信小程序iBeacon获取问题(wx.onBeaconUpdate不执行)【已解决】

作者:互联网

微信小程序iBeacon获取问题(wx.onBeaconUpdate不执行)【已解决】

问题描述

长话短说,使用某公司的iBeacon标签设备,开发微信小程序获取iBeacon信息。结果一直不能进入wx.onBeaconUpdate里。

软件硬件

平板:HUAWEI
EMUI:10.1.0
Android版本:10
微信版本:7.0.21
微信开发者工具版本:Stable v1.02.2004020

使用代码

var devices = [];
  doiBeaconAction: function(e){
    console.log(e)
    // 开始扫描
    
    wx.startBeaconDiscovery({
      uuids: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
      success: function (res) {
          console.log("开始扫描设备...", res);
          // 监听iBeacon信号
          wx.onBeaconUpdate(function (res) {
              console.log("onBeaconUpdate", res)
              if (res && res.beacons && res.beacons.length > 0) {
                  devices = res.beacons
                  // 此处最好检测rssi是否等于0,等于0的话信号强度等信息不准确。我是5秒内重复扫描排重。
              }
          })
      },
      fail: function(res) {
        console.log("fail", res)
      },
      complete: function(res) {
        console.log("complete", res)
      }
    }),

    // 超时停止扫描
    setTimeout(function () {
      wx.stopBeaconDiscovery({
          success: function () {
              console.log("停止设备扫描!");
              console.log(devices);
          }
      });
    }, 20 * 1000)
    
  }

问题现象

wx.startBeaconDiscovery可以进入,success回调成功,但wx.onBeaconUpdate的回调没有办法进入。
流程是没有问题的

	   wx.stopBeaconDiscovery # 停止扫描
		↑
	   setTimeout # 超时设置
		↑
开始 → wx.startBeaconDiscovery # 开始扫描
		︱
		︱―fail(err)→结束
		︱
	   success(res)
		↓
       wx.onBeaconUpdate # 监听iBeacon信号
		︱  
		︱―fail(err)→结束
		︱
	   success(res)
		↓
       TODO
       

解决办法

对手机的微信权限设置:应用–>应用管理–>微信–>权限–>位置信息–>允许。
这个结果我也完全没有想到,但实测就是这样子。希望可以帮到大家。
参考链接:
错误方案:wx.onBeaconUpdate不执行
本次正确方案:【问题BUG?】uni.onBeaconUpdate在微信小程序端不支持部分机型

标签:onBeaconUpdate,console,log,微信,iBeacon,res,wx
来源: https://blog.csdn.net/AlexDish/article/details/110920203