uniapp onbleconnectionstatechange 如何使用或监听状态变化
在uniapp中如何使用onbleconnectionstatechange监听蓝牙连接状态的变化?我尝试在uni.onBLEConnectionStateChange中写回调函数,但不知道具体参数和事件触发条件是什么。能否提供一个完整的代码示例,说明如何正确监听蓝牙设备的连接和断开事件?
2 回复
在uniapp中,使用uni.onBLEConnectionStateChange监听蓝牙连接状态变化:
uni.onBLEConnectionStateChange(function(res) {
console.log(`设备 ${res.deviceId} 连接状态: ${res.connected}`)
// res.connected 为 true/false
})
记得先调用uni.createBLEConnection连接设备,并在页面销毁时用uni.offBLEConnectionStateChange取消监听。
在 UniApp 中,onBLEConnectionStateChange 是用于监听低功耗蓝牙(BLE)设备连接状态变化的事件。当蓝牙设备的连接状态改变时(例如连接成功、断开连接),会触发此事件回调。
使用步骤:
- 初始化蓝牙模块:使用
uni.openBluetoothAdapter初始化蓝牙适配器。 - 监听连接状态变化:通过
uni.onBLEConnectionStateChange注册监听事件。 - 处理状态变化:在回调函数中获取连接状态并执行相应操作。
示例代码:
// 初始化蓝牙适配器
uni.openBluetoothAdapter({
success: (res) => {
console.log('蓝牙适配器初始化成功');
this.startListenBLEConnectionState(); // 开始监听连接状态
},
fail: (err) => {
console.error('蓝牙适配器初始化失败:', err);
}
});
// 监听蓝牙连接状态变化
startListenBLEConnectionState() {
uni.onBLEConnectionStateChange((res) => {
console.log(`设备 ${res.deviceId} 连接状态变化:`, res.connected);
if (res.connected) {
console.log('蓝牙设备已连接');
// 执行连接成功后的操作,例如发现服务
} else {
console.log('蓝牙设备已断开');
// 执行断开连接后的清理操作
}
});
}
注意事项:
- 先初始化蓝牙适配器:确保在调用
onBLEConnectionStateChange前已成功初始化蓝牙适配器。 - 设备连接:监听前需通过
uni.createBLEConnection尝试连接设备,否则不会触发状态变化。 - 及时取消监听:在页面卸载或不需要时,使用
uni.offBLEConnectionStateChange取消监听,避免资源浪费。
参数说明:
回调函数参数 res 包含:
deviceId:蓝牙设备 ID。connected:连接状态(布尔值,true表示已连接,false表示断开)。
通过以上方法,你可以有效监听并处理 UniApp 中蓝牙设备的连接状态变化。

