2***@qq.com
2***@qq.com
  • 发布:2025-04-25 14:41
  • 更新:2025-04-25 14:41
  • 阅读:29

uni.onBLECharacteristicValueChange兼容性

分类:uni-app

uni.onBLECharacteristicValueChange在支付宝环境返回的参数不一致,导致程序在支付宝小程序走不通,但是大部分的api都兼容,这种情况我要单独针对这一个换成支付宝原生的api吗?还是统一都换成支付宝的。参数如下:
uni.onBLECharacteristicValueChange api
支付宝小程序工具返回:
{
NBPageUrl: "https://2021005137623614.hybrid.alipay-eco.com/index.html#pages_Devices/devices/devicesSetUp?appxPageId=2&isConnected=false&id__=2"
characteristicId: "00002b10-0000-1000-8000-00805f9b34fb"
deviceId: "DC:23:4F:C1:33:E9"
serviceId: "00001910-0000-1000-8000-00805f9b34fb"
value: "00713004C5A30FBA764E6289CA71DF705ACC102F"
}

app返回参数(app基座)
{
"deviceId": "DC:23:4F:C1:33:E9",
"serviceId": "00001910-0000-1000-8000-00805F9B34FB",
"characteristicId": "00002B10-0000-1000-8000-00805F9B34FB",
"value": {}
}

代码如下:
onBLECharacteristicValueChange() {
console.log('onBLECharacteristicValueChange');

    // #ifdef MP-ALIPAY  
    uni.onBLECharacteristicValueChange(characteristic => {  
        console.log(characteristic, 'characteristic进入1onBLECharacteristicValueChange方法')  
        let array = new Uint8Array(characteristic.value);  
        //console.log("array:" + array)  
        //console.log("repeat:" + repeat)  
        if (repeat.toString() === array.toString()) {  
            return  
        } else {  
            repeat = array  
        }  
        let str = ''  

        for (let i = 0; i < array.byteLength; i++) {  
            if (array[0] === 0) {  
                receiveData = ""  
                dataLength = array[1]  
            }  
            if (i !== 0) {  
                let n = array[i].toString(16)  
                let s = '0000' + n  
                str += s.substring(s.length - 2)  
            }  
        }  
        receiveData += str  
        console.log('测试断点!!!!!', '(receiveData.length - 4) / 2', (receiveData.length - 4) / 2, 'dataLength', dataLength)  
        if ((receiveData.length - 4) / 2 === dataLength) {  
            console.log('进入判断!!!!')  
            uni.$emit('getBLEData', receiveData)  

            let FlAG = receiveData.substring(4, 6)  
            console.log("FlAG:" + FlAG)  
            switch (FlAG) {  
                case '01':  
                    analysisKey1();  
                    break;  
                case '04':  
                    analysisKey4();  
                    break;  
                case '05':  
                    analysisSessionKey();  
                    break;  
                default:  
                    console.log("新的" + FlAG)  
            }  
        }  
    });  
    // #endif  
    // #ifdef  APP-PLUS  
    uni.onBLECharacteristicValueChange(characteristic => {  
        console.log("characteristic基座调试:", characteristic);  
        var array = new Uint8Array(characteristic.value);  
        //console.log("array:" + array)  
        //console.log("repeat:" + repeat)  
        if (repeat.toString() === array.toString()) {  
            return  
        } else {  
            repeat = array  
        }  
        let str = ''  

        for (let i = 0; i < array.byteLength; i++) {  
            if (array[0] === 0) {  
                receiveData = ""  
                dataLength = array[1]  
            }  
            if (i !== 0) {  
                let n = array[i].toString(16)  
                let s = '0000' + n  
                str += s.substring(s.length - 2)  
            }  
        }  

        receiveData += str  
        //console.log("receiveData:" + receiveData)  
        // console.log("receiveData.length:" + receiveData.length)  
        // console.log("dataLength:" + dataLength)  
        if ((receiveData.length - 4) / 2 === dataLength) {  

            uni.$emit('getBLEData', receiveData)  

            let FlAG = receiveData.substring(4, 6)  
            console.log("FlAG:" + FlAG)  
            switch (FlAG) {  
                case '01':  
                    analysisKey1();  
                    break;  
                case '04':  
                    analysisKey4();  
                    break;  
                case '05':  
                    analysisSessionKey();  
                    break;  
                default:  
                    console.log("新的" + FlAG)  
            }  
        }  
    });  
    // #endif  
}
2025-04-25 14:41 负责人:无 分享
已邀请:

要回复问题请先登录注册