使用的是uniapp构建安卓app,uniapp封装的微信的api,所以来这里找大佬提问,我看社区有很多类似的问题都没有得到解决
createBLEConnection当连接超时3次后,第4次连接调用直接报出超时的错误?// 连接蓝牙 async linkDevice() { const that = this; const maxRetryCount = 3; let retryCount = 0; // 连接连接失败,重试3次 async function connectWithRetry() { try { const blueId = that.getBluetoothId(); await uni.openBluetoothAdapter(); await uni.getBluetoothAdapterState(); await uni.startBluetoothDevicesDiscovery(); const joinResult = await connectBluetooth(blueId); uni.stopBluetoothDevicesDiscovery({ success(res) { console.log("停止搜索成功", res); }, fail(err) { console.log("停止失败", err); }, }); if (joinResult.err) { throw new Error("连接失败"); } } catch (err) { console.log("初始化蓝牙失败", err); if (retryCount < maxRetryCount) { retryCount++; console.log(`重试连接,当前第 ${retryCount} 次`); await connectWithRetry(); } else { // 达到最大重试次数,执行失败处理 uni.showModal({ title: "提示!", content: "蓝牙连接失败,请重新操作设备!", showCancel: false, confirmText: "确定", success: (res) => { if (res.confirm) { that.unlockingFailure(); } }, }); } } } // 开始首次连接尝试 await connectWithRetry(); }, /** * 连接蓝牙 + 获取主服务 + 获取特征码 */ export const connectBluetooth = async (deviceId) => { console.log('deviceId---------------------', deviceId); try { // 连接蓝牙设备 await uni.createBLEConnection({ deviceId, timeout: 3000, }); // 获取主服务 const serviceId = await getServiceIdWithRetry(deviceId, 10); // 获取特征码 const characteristicId = await getCharacteristicId(deviceId, serviceId); // 返回设备数据 const deviceData = { deviceId, serviceId, characteristicId, }; return deviceData; } catch (error) { console.log('连接蓝牙发生错误', error); // 连接失败 return { err: true, errName: error.toString(), ...error, }; } }; [图片] 图片是第4次重新操作设备的日志输出,可以看到在1秒钟直接超时失败重连3次都是超时
19小时前[图片]这是resTop输出的
页面加载完后获取不同dom距离顶部的高度,但是如果一进来就滑动页面,获取的高度就少了咋办?const heightArr = []; // 获取节点距离容器顶部的高度 wx.nextTick(() => { // eslint-disable-next-line array-callback-return tabList.map((item) => { createSelectorQuery() .select(`#_${item.value}`) .boundingClientRect((resTop) => { heightArr.push(Number(resTop.top) - 45); if (heightArr?.length >= 4) { this.setState({ heightArr, }); } }) .exec(); }); }); 需求是获取dom距离顶部的高度,从而来进行scroll-view的scroll-top定位,现在的效果是进入页面后不动页面,获取的高度准确,点击dom定位 也准确。但是如果一进去页面就滑动页面,获取的高度就不准确,获取出来是距离当前顶部的高度,我想要获取dom距离页面最上面的距离
2023-09-12