iBeacon接口有问题
发布于 5 年前 作者 wanli 10696 次浏览 来自 问答

调用 wx.startBeaconDiscovery 接口出错,报:fail must have uuid。并且getBeacons接口未返回设备名称,希望同时返回此设备名称。

10 回复

@明明 谢谢,真机调试就OK了。我使用的苹果笔记本开发工具调试,调试bluetooth时没问题,就自以为Ibeacon也可以…

@WilliamTsang

非常感谢你给出的代码,根据你的代码,我也找到了我的云子,但是,有几个问题想请教下

1.  wx.startBeaconDiscovery() 需要给定指定的uuids才能找到对应的云子,既然我已经知道uuids,那其他的信息我也肯定是知道的,那何必多此一举去重复指定搜索呢,所以我猜测这个方法需要在wx.getBeacons()内使用,因为不需要传参数(我猜的),其次,这个API返回结果我测试了一下,只有一个errMsg:getBeacons:ok 并没有看到beacons列表,

2. 我描述下我需要的应用场景: 打开小程序->搜索附近的iBeacon,出现列表,点击选择某个iBeacon,获取具体的参数信息,然后根据参数信息去后台调取数据, 不知道这个场景可否实现。基于现有的API。

3. 小程序获取的iBeacon是否需要在微信摇一摇后台配置店铺信息,因为我是个人账号,无法认证,所以用不了摇一摇后台,我只是想拿到附近的ibeacon的信息,然后进行信息推送。

4. 非常期待能与你讨论一下,QQ,1905997838 ,谢谢你的分享。

你好楼主,请问是怎么计算出距离的

还请加我的 QQ, 探讨一下。(我并不是官方人员……)416909382

@WilliamTsang   你好,使用你的代码,出现如下错误,请问是什么问题?一定真机测试吗?我使用Mac 测试的

onLoad

scanble.js [sm]:118 -----success----------

scanble.js [sm]:119 Object {errMsg: “openBluetoothAdapter:ok”}

scanble.js [sm]:162 -----complete----------

scanble.js [sm]:163 Object {errMsg: “openBluetoothAdapter:ok”}errMsg: “openBluetoothAdapter:ok”__proto__: Object

scanble.js [sm]:138 Object {errMsg: “startBeaconDiscovery:fail not support”}errMsg: “startBeaconDiscovery:fail not support”__proto__: Object

scanble.js [sm]:146 停止设备扫描!

scanble.js [sm]:147 []

var devices = [];

        wx.startBeaconDiscovery({

          uuids: [‘fda50693-a4e2-4fb1-afcf-c6eb07647825’],

          success: function () {

            console.log(“开始扫描设备…”);

            wx.onBeaconUpdate(function (res) {

              //请注意,官方文档此处又有BUG,是res.beacons,不是beacons。

              if (res && res.beacons && res.beacons.length > 0) {

                devices = res.beacons;

                //此处最好检测rssi是否等于0,等于0的话信号强度等信息不准确。我是5秒内重复扫描排重。

              }

            });

          },

          fail: function(e){

            console.log(e)

          }

        });

        setTimeout(function () {

          wx.stopBeaconDiscovery({

            success: function () {

              console.log(“停止设备扫描!”);

              console.log(devices);

            }

          });

        }, 5 * 1000);

麻烦问下getBeacons这个接口为什么在ios上返回参数有beacons和errMsg两个参数,而android上面返回参数就只有errMsg,这是否是一个bug?

虽然官方没有说明调用wx.getBeacons()接口必须要先调用

wx.startBeaconDiscovery(),但是你可以做下实验,setTimeout然后5-10秒再调用wx.getBeacons()试试。

@刘政 你这是在设备上运行的还是开发工具里运行的 设备上运行打开vConsole看看

 一定得要先用startBeaconDiscovery传入uuids才能搜索么? 可不可以直接搜索附近所有的ibeacon?

这是使用其他 APP 搜索出来的 UUID。

回到顶部