如果没看过我另一篇nfc读卡数据的可以去看一下,里面有一些描述可以帮助到大家。
刚通过测试代码还没有优化,有什么问题大家也可以提出来。
本次是nfc读取m1卡数据的,m1卡数据是有密钥分扇区的所以大家一定要问清楚写入卡数据的同学他吧数据写入到了那个扇区以及提供卡的第三方密钥也要问清楚,哪怕错了一个字节都会影响。
nfcRead() {
var that = this;
const adapter = wx.getNFCAdapter();
console.log("获取NFC实例", adapter)
adapter.onDiscovered(res => {
console.log("读取到卡片了", res);
let tagId = res.id;
console.log("获取到tagID:", tagId);
if (res.techs.includes(adapter.tech.mifareClassic)) { //如果影响你nfc可以去掉
console.log('发现' + adapter.tech.mifareClassic + '卡');
let mifareClassic = adapter.getMifareClassic();
mifareClassic.connect({
success: res => {
console.log("设备已连接", res)
console.log("开始拼接验密指令。。。");
var arr = [0x60, 0x04, 0x11, 0x22, 0x33, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF];
var arrayBuffer = new Uint8Array(arr).buffer
console.log("解密指令为:", arrayBuffer);
mifareClassic.transceive({
data: arrayBuffer,
success: function (res) {
console.log('发送数据并解密成功, 接收数据如下:', res);
},
fail: function (err) {
console.log('发送数据失败A', err);
wx.showToast({
title: 'nfc失败!',
icon:'error'
})
}
})
}