Android与IOS小程序接受ibeacon广播数据不一致?
发布于 6 年前 作者 yanyong 2965 次浏览 来自 问答
uuids: ["E2C56DB5-DFFB-48D2-B060-D0F5A71096E0", "E2C56DB5-DFFB-48D2-B060-D0F5A71096E1", "E2C56DB5-DFFB-48D2-B060-D0F5A71096E2", "E2C56DB5-DFFB-48D2-B060-D0F5A71096E3"],
          success: function (res) {
            console.log(res.errMsg);
            wx.onBeaconUpdate(function (res) {//监听 iBeacon 设备的更新事件 
              //console.info(res.beacons.length);
              //封装请求数据
              var beacons = res.beacons;
              var reqContent = {};
              var bleArray = [];
              var times = [];
              for (var i = 0; i < beacons.length; i++) {
                var bleObj = {};
                bleObj.distance = beacons[i].accuracy;
                bleObj.uuid = beacons[i].uuid.substr(34,2);//uuids
                bleObj.rssi = beacons[i].rssi;
                //bleObj.mac = beacons[i].major + ":" + beacons[i].minor;
                bleObj.major = beacons[i].major;
                bleObj.minor = beacons[i].minor;
                //bleArray.push(bleObj);
                bleArray.push(bleObj.rssi);
                bleArray.push(bleObj.uuid);
              }
              //获取当前时间戳
              var timestamp = (new Date()).valueOf();
              timestamp = timestamp / 1000;
              bleArray.push(timestamp.toString());
              reqContent.ble = bleArray;//封装beacons数据
              //reqContent = bleArray[0].rssi;//封装rssi
              console.info('下面是初始数据.')
              console.log(reqContent);})

小程序在接受来自ibeacon广播数据时,安卓接收的速率1秒10条数据,速度与ibeacon设备设置的基本一致。手机型号是坚果pro1;

但是ios打开小程序接收速率非常慢,1秒一条,ibeacon广播的速率快与慢,ios始终都是1秒一条。求官方解答,或者小伙伴有类似情况吗

3 回复

图1是安卓手机打印出来的数据,通过时间戳可以看出一秒内的大概数据

下图2是ios苹果手机打印出来的数据,看时间戳一秒一条。

1、ios扫描上传一秒一次是ios底层决定的,ios的app也是如此啊,小程序从底层获取的数据,没法提高速率。

2、跟安卓不一样,ios使用小程序的蓝牙接口只能获取RSSI 、deviceId、localName、name,没有major、minor,甚至连uuid都没有哇,更没有manufactureData,当然无法封出beacon接口。

3、感觉微信小程序ios的ble扫描好尴尬,扫描速度慢不说,用beacon接口扫不出来name;用蓝牙接口扫不出来uuid、major、minor,也无法解析具体的扫描回应包。

楼主你好,iOS 小程序 beacon 接口是依赖系统提供的 beacon 接口,系统一有数据回调小程序会立刻给事件到前端这边的。这里的确无法提高回调的频率了。

回到顶部