问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 Bug wx.onBluetoothDeviceFound 客户端 6.73 2.3.0
js:
scanstart() {
wx.openBluetoothAdapter({
success: function (res) {
wx.getBluetoothAdapterState({
success: function (res) {
if (res.available && !res.discovering) {
wx.startBluetoothDevicesDiscovery({
success: function (res) {
wx.showToast({
title: '开始扫描',
icon:'loading',
duration: 3000
})
}
})
}
}
})
}, fail: function () {
app.showModal('请打开蓝牙', '', false)
}
})
wx.onBluetoothDeviceFound(function (res) {
console.log(res.devices)
}
})
}
wxml:
最近wx.onBluetoothDeviceFound无法回调扫描到的蓝牙
微信小程序开发问题解答
微信小程序开发者回答:
getBluetoothAdapterState()你这个接口还没扫描你就开始调用了,,
微信小程序开发者回答:
if (res.available && !res.discovering)
判断蓝牙可用并不在搜索蓝牙,才开始扫描
微信小程序开发者回答:
看成getBluetoothDevice去了,代码鲁久了脑阔疼,,你这种嵌套函数还是在每个回调里面都打印一下,看看是不是中间某个函数卡死了
微信小程序开发者回答:
没有卡,可以看到wx.showToast的'开始扫描'提示,然后在附近有蓝牙时没有发生回调
微信小程序开发者回答:
感觉是不是异步的问题,还没扫描就调用了,你把onBluetooth放在扫描成功的函数里面
微信小程序开发者回答:
异步后依然没有回调
微信小程序开发者回答:
onBluetooth是放在扫描成功之后吗??
微信小程序开发者回答:
是的,放在开始扫描成功后
微信小程序开发者回答:
那你有没有重复调用。、、onBluetooth在重复调用还有连续调用的时候会出现寻找不到的情况
微信小程序开发者回答:
没有,我都没写循环
微信小程序开发者回答:
上代码片段吧,,我看看
微信小程序开发者回答:scanstart() {
微信小程序开发者回答:
我找到原因了,突然想到在App扫描蓝牙时,当Android版本大于等于6.0时,需要开启"位置信息"的 权限,于是我把微信的"位置信息"权限打开之后,就可以回调了。
希望微信官方能在蓝牙的相关API 中,明确写出Android版本大于等于6.0需要开启微信的"位置信息"的 权限
本文网址:http://www.91bianli.com/kaifazhinan/74539.html