h***@163.com
h***@163.com
  • 发布:2024-05-10 16:13
  • 更新:2024-09-25 00:05
  • 阅读:397

【报Bug】uni.onBluetoothDeviceFound在蓝牙异常断开之后再次调用不执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 15872101242

HBuilderX类型: 正式

HBuilderX版本号: 4.15

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iphone7

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://app.liuyingyong.cn/build/download/7c15a7f0-0dec-11ef-9019-d105f66a74e9

示例代码:

function findBPW(){
console.log('开始查找这个ios设别');
uni.onBluetoothDeviceFound(function(res) {
console.log('88888888888888888888');
if (uni.getStorageSync('activeDevide') == 'BPW2(蓝牙手表)') {
console.log('苹果bpw2');
if (res.devices[0].name == "BPW2") {
let a = ab2hex(res.devices[0].advertisData)
let str = uni.getStorageSync('mac')
let newStr = str.replace(/:/g, '').toLowerCase();
if (a.includes(newStr)) {
console.log('匹配成功');
// 代表匹配上了对应的mac地址
connect(res.devices[0].deviceId)
}
}
} else if (uni.getStorageSync('activeDevide') == 'M90(蓝牙手表)') {
if (res.devices[0].name == "M90") {
let a = ab2hex(res.devices[0].advertisData)
let str = uni.getStorageSync('mac_M90')
let newStr = str.replace(/:/g, '').toLowerCase();
console.log('这是add',a);
console.log('这是str',str);
console.log('这是newStr',newStr);
console.log('这是m90',res.devices[0]);
if (a.includes(newStr)) {
console.log('匹配成功');
// 代表匹配上了对应的mac地址
connect(res.devices[0].deviceId)
}
}
} else {
console.log(uni.getStorageSync('activeDevide'));
}
})
}
这是调用的重新连接的部分代码 每一次断开之后进入函数 log了console.log('开始查找这个ios设别'); 然后后面的代码就不会执行
注意是连接异常断开之后

操作步骤:

写一套蓝牙连接的代码 尝试使用ios安装基座 连接成功之后关闭蓝牙设备 然后app端检测蓝牙断开 自动尝试重新搜索 这时候就发现无法执行uni.onBluetoothDeviceFound

预期结果:

希望可以执行

实际结果:

ios端不可执行

bug描述:

安卓端正常,ios上,低功耗蓝牙连接成功后,如果将蓝牙设备关机,app端无法再次执行uni.onBluetoothDeviceFound

无任何回调

2024-05-10 16:13 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com - 一个小白

关注相同问题,设备异常断连后,安卓手机端短时间可以用 createBLEConnection 重连上,超过1分钟就彻底连不上了,也搜不到这个设备;

相同是按官方的成对调用createBLEConnection和closeBLEConnection,官方应该修复一下这个BUG,挺严重的,导致很多蓝牙不稳定。

要回复问题请先登录注册