刷新蓝牙设备:按钮会触发init()事件,init事件执行步骤:关闭蓝牙释放资源=>初始化蓝牙适配器=>开始搜索.
BUG复现:小程序打开后扫码跳转页面第一次搜索蓝牙设备瞬间搜索完毕,往后每次重复扫码跳转第一次或前几次都无法搜索到蓝牙设备,如果搜索到设备后,点击刷新按钮每次又能搜索到设备
BUG=>蓝牙在初始化完毕的情况下,跳转页面释放资源后再次初始化搜索啥都搜不到
import {ble} from "./ble.js";
data:{
// 搜到的设备
devices:[]
},
onLoad() {
wx.offBluetoothDeviceFound()
wx.onBluetoothDeviceFound(res => {
this.setData({devices: this.data.devices.concat(res.devices)})
})
this.init()
},
// 初始化蓝牙并搜素
init() {
// 先关闭蓝牙释放资源
ble.close().then(() => {
// 打开初始化蓝牙
return ble.open()
}).then(() => {
// 清空设备数组并开始搜素设备
this.data.devices = []
// 开始搜索蓝牙设备
return ble.startSearch()
})
}
// ble.js ====================================
export const ble = {
// 初始化蓝牙模块
open() {
return new Promise((resolve, reject) => {
wx.openBluetoothAdapter({success: resolve, fail: reject})
})
},
// 关闭蓝牙模块
close() {
return new Promise((resolve, reject) => {
wx.closeBluetoothAdapter({success: resolve, fail: reject})
})
},
// 开始搜索蓝牙设备
startSearch() {
return new Promise((resolve, reject) => {
wx.startBluetoothDevicesDiscovery({
success: resolve,
fail: reject,
})
})
},
}
解决了吗?我也遇到这个问题了,close后open都不成功
我也遇到了,在前一个页面调用wx.closeBluetoothAdapter后,在另外一个页面调用wx.openBluetoothAdapter和wx.startBluetoothDevicesDiscovery会搜索不出蓝牙设备来
你好,麻烦具体描述问题流程,提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html,麻烦再重现一次,在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供一下微信号,复现问题的详细时间点(如:2020-4-10 10:10)