要先做验证,再读块 function discoverHandler(res) { if (res.techs.includes(nfc.tech.nfcA)) { var arrayBuffer = new Uint8Array(res.id); var tagId = me.bufArrToHex(arrayBuffer); me.setData({ tagId: tagId }); const nfcA = nfc.getMifareClassic(); nfcA.connect({ success:function(res){ //按块读取NFC的数据 const params = { cmd: 0x60, // 验证指令 block: 0x03, // 扇区 cardId: [arrayBuffer[0], arrayBuffer[1], arrayBuffer[2], arrayBuffer[3]], // 卡片id 获取从 NFCAdapter.onDiscovered((res)=>{ // res中含有卡片id }); key: [0xff, 0xff, 0xff, 0xff, 0xff, 0xff], // 验证密钥 }; const arr = [params.cmd,params.block,...params.cardId,...params.key]; const writeBuffer = new Uint8Array(arr).buffer; console.log(writeBuffer) //认证 nfcA.transceive({ data: writeBuffer, success:function(res){ console.log(res) //读取扇区 const arr = [0x30,params.block]; const writeBuffer = new Uint8Array(arr).buffer; nfcA.transceive({ data: writeBuffer, success:function(res){ var arrayBuffer = new Uint8Array(res.data); var block = me.bufArrToHex(arrayBuffer); console.log(block) }, fail:function(res){ console.log(res) } }) }, fail:function(res){ console.log(arguments) } }); }, fail:function(){ wx.showToast({ title: 'nfc读取失败', }) } }); console.log(nfcA) } }
NfcA.transceive,返回13017,并且不知道data的指令应该如何填写2020.12.10 18:51 [图片] 13017 相关读写操作失败 并且不知道data的指令应该如何填写
2023-07-04