NFC组件中的 transceive 发送指令无法获取正常数据?
发布于 5 年前 作者 tjia 13155 次浏览 来自 官方Issues

目前在调试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 = [0x600x000xF90xB40xB30x400xFF0xFF0xFF0xFF0xFF0xFF]
        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 = [0xA00x040x000x010x020x030x040x050x060x070x080x090x0A0x0B0x0C0x0D0x0E0x0F]
        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

麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点(具体到分钟)

回到顶部