NFC组件中的 transceive 发送指令无法获取正常数据?
目前在调试NFC读卡和写卡功能,指令都正常发出了,但获取数据异常,代码片段如下:
if (res.techs.includes(nfc.tech.nfcA)) {
const nfcA = nfc.getNfcA()
nfcA.connect({
success:function(res){
console.log(res)
}
})
nfcA.getAtqa({
success:function(res){
console.log(res.atqa)
}
})
nfcA.getMaxTransceiveLength({
success:function(res){
console.log(res.length)
}
})
nfcA.getSak({
success:function(res){
console.log(res.sak)
}
})
// read 加密卡,用60指令,读第0块
var arr = [0x60, 0x00, 0xF9, 0xB4, 0xB3, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
var arrayBuffer = new Uint8Array(arr).buffer
nfcA.transceive({
data: arrayBuffer,
success:function(res){
console.log('ReadSuccess')
console.log(res)
},
fail:function(res){
console.log('ReadFail')
console.log(res)
}
})
// write 写卡,写第4块
var arr2 = [0xA0, 0x04, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F]
var arrayBuffer2 = new Uint8Array(arr2).buffer
nfcA.transceive({
data: arrayBuffer2,
success:function(res){
console.log('WriteSuccess')
console.log(res)
},
fail:function(res){
console.log('WriteFail')
console.log(res)
}
})
已经试过使用nfcA和MIFARE Classic的组件,获得的结果都相同,以下为调用nfcA组件的输出:
读卡获取的数据都是1组arraybuffer 而且为0;并且无法写卡,提示卡片丢失。
1 回复
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点(具体到分钟)