时间:2019-05-03 来源:小程序工厂
微信版本都是最新的 vivo的、oppo a7 android 的都会截断
vivo y67a
andtoid 6.0
oppo a7x
android 8.1.0
这个机子扫描不到设备
// 开始扫描
Inventory: function () {
var that = this;
that.setData({
'Taglist': []
})
var deviceId = that.data.defaultDeviceId;//.DevicesConnected[0].deviceId; //getApp().data.deviceId;//全局变量
console.log("deviceId:" + deviceId)
that.setData({
deviceId: deviceId
})
if (deviceId == "") {
wx.showModal({
title: '提示',
content: '未连接蓝牙设备,请连接蓝牙设备',
})
return
}
wx.getBLEDeviceServices({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId: that.data.deviceId,
success: function (res) {
console.log('device services:', res)
var serviceId = res.services[0].uuid//设置serviceId的值
that.setData({
serviceId: serviceId
})
wx.getBLEDeviceCharacteristics({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId: that.data.deviceId,
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
serviceId: that.data.serviceId,
success: function (res) {
console.log('device getBLEDeviceCharacteristics:', res.characteristics)
for (var i = 0; i < res.characteristics.length; i++) {
if (res.characteristics[i].properties.write) {
that.setData({
writeCharacteristicId: res.characteristics[i].uuid,
})
}
if (res.characteristics[i].properties.read) {
that.setData({
readCharacteristicId: res.characteristics[i].uuid,
})
}
if (res.characteristics[i].properties.notify) {
that.setData({
notifyCharacteristicId: res.characteristics[i].uuid,
})
}
}
wx.notifyBLECharacteristicValueChange({
state: true, // 启用 notify 功能
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId: that.data.deviceId,
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接s口中获取
serviceId: that.data.serviceId,
// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
characteristicId: that.data.notifyCharacteristicId,
success: function (res) {
console.log('notifyBLECharacteristicValueChange success', res.errMsg)
// 必须在这里的回调才能获取
},
})
},
fail: function (res) {
console.log(res)
}
})
}
})
var tag = "";
var TaglistArray = that.data.Taglist
wx.onBLECharacteristicValueChange(function (res) {
//处理数据,将Arraybuffer转换为base64,在将base64转换为字符串
var base64str = base64.decode(wx.arrayBufferToBase64(res.value))//base64解密
console.log(res.characteristicId);
console.log(base64str)
// 过滤id
//base64str = base64str.replace
if (base64str.length>20){
TaglistArray.push(base64str.replace(/\s+/g, ''));
}
that.setData({
Taglist: TaglistArray,
})
that.setData({
goods_num: TaglistArray.length,
})
console.log(TaglistArray)
})
wx.readBLECharacteristicValue({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接 [**new**]
deviceId: that.data.deviceId,
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
serviceId: that.data.serviceId,
// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
characteristicId: that.data.readCharacteristicId,
success: function (res) {
console.log('readBLECharacteristicValue:', res)
}
})
},
看起来像是系统自动给你分包回调了。
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)