小程序
小游戏
企业微信
微信支付
扫描小程序码分享
调用接口wx.onBLECharacteristicValueChange
iphone 返回如下:
android 返回如下,
怎么感觉是android 把这个给截断了呢 ?
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
微信版本都是最新的 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)
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的值
serviceId: serviceId
wx.getBLEDeviceCharacteristics({
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取
serviceId: that.data.serviceId,
console.log('device getBLEDeviceCharacteristics:', res.characteristics)
for (var i = 0; i < res.characteristics.length; i++) {
if (res.characteristics[i].properties.write) {
writeCharacteristicId: res.characteristics[i].uuid,
if (res.characteristics[i].properties.read) {
readCharacteristicId: res.characteristics[i].uuid,
if (res.characteristics[i].properties.notify) {
notifyCharacteristicId: res.characteristics[i].uuid,
wx.notifyBLECharacteristicValueChange({
state: true, // 启用 notify 功能
// 这里的 serviceId 需要在上面的 getBLEDeviceServices 接s口中获取
// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取
characteristicId: that.data.notifyCharacteristicId,
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, ''));
Taglist: TaglistArray,
goods_num: TaglistArray.length,
console.log(TaglistArray)
wx.readBLECharacteristicValue({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接 [**new**]
characteristicId: that.data.readCharacteristicId,
console.log('readBLECharacteristicValue:', res)
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
解决了吗?我也遇到同样的问题,返回数据大于20时,ios正常,android就只能得到20
看起来像是系统自动给你分包回调了。
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,可以加我微信? 微信号 18983002023
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
微信版本都是最新的 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)
}
})
},
解决了吗?我也遇到同样的问题,返回数据大于20时,ios正常,android就只能得到20
看起来像是系统自动给你分包回调了。
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
你好,可以加我微信? 微信号 18983002023
解决了吗?我也遇到同样的问题,返回数据大于20时,ios正常,android就只能得到20