3***@qq.com
3***@qq.com
  • 发布:2021-06-19 15:19
  • 更新:2023-06-27 15:56
  • 阅读:1220

【报Bug】低功耗蓝牙连接打印机,分包write打印指令时,偶现10007

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.1.18

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: mi10

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
console.log("共【"+length+"】次第【" + i + "】次写数据"+data)  
                var buffer = new ArrayBuffer(data.length)  
                var dataView = new DataView(buffer)  
                for (var j = 0; j < data.length; j++) {  
                    dataView.setUint8(j, data[j]);  
                }  
                uni.writeBLECharacteristicValue({  
                    deviceId,  
                    serviceId,  
                    characteristicId,  
                    value: buffer,  
                    success(res) {  
                        console.log('打印成功')  
                        console.log(deviceId+'/'+serviceId+'/'+characteristicId);  
                        realWriteData(sendloop, i + 1);  
                    },  
                    fail(err) {  
                        uni.showModal({  
                            title: '打印错误!',  
                            content: JSON.stringify(err),  
                            showCancel: false  
                        });  
                        console.log('打印失败')  
                        console.log(deviceId+'/'+serviceId+'/'+characteristicId);  
                    }  
                })

操作步骤:

连接蓝牙打印机,点击打印测试

预期结果:

正常打印

实际结果:

有几率 uni.writeBLECharacteristicValue 报 10007

bug描述:

连接蓝牙打印机,获取到服务和特征码后,调用uni.writeBLECharacteristicValue发送打印命令,此处有 将命令分割和递归的操作。
递归打印时,设备id、服务id和特征码参数不变,但是有几率报 10007 bug;再次重新打印,会恢复。

2021-06-19 15:19 负责人:无 分享
已邀请:
Interger

Interger - 12345

这个问题解决的方法为:在fail中监听code是不是10007,如果是10007则重新执行本次分包打印

2***@qq.com

2***@qq.com

我也遇到同样的问题,求解

小金家的沐沐

小金家的沐沐

方案,通过 嵌套调用,上一次调用成功再调用下一次的数据。反正我用这种方案解决了 10007的问题

要回复问题请先登录注册