收藏
回答

怎么使用MifareClassic.transceive 有读写扇区的列子程序没?

如题

回答关注问题邀请回答
收藏

4 个回答

  • 水风轻
    水风轻
    04-26
      onLoad: function () {
        //调用wx.getNFCAdapter()获取NFC适配器实例
        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)) {
            console.log('发现' + adapter.tech.mifareClassic + '卡');
            let mifareClassic = adapter.getMifareClassic();
           
            mifareClassic.connect({
              successres => {
                console.log("设备已连接", res)
                console.log("开始拼接验密指令。。。");
                var arr = [0x600x040x110x220x330x440xFF0xFF0xFF0xFF0xFF0xFF];
                var arrayBuffer = new Uint8Array(arr).buffer
                console.log("解密指令为:", arrayBuffer);
                mifareClassic.transceive({
                  data: arrayBuffer,
                  successfunction (res{
                  console.log('发送数据并解密成功, 接收数据如下:', res);
                  },
                  failfunction (err{
                    console.log('发送数据失败A', err);
                  }
                })
              }
            })
            mifareClassic.isConnected({
              successfunction (isConnected{
                console.log('成功连接', isConnected);
                var arr02 = [0x300x04];
                var arrayBuffer02 = new Uint8Array(arr02).buffer
                mifareClassic.transceive({
                  data: arrayBuffer02,
                  successfunction (res{
                    console.log('读取数据:', res);
                  },
                  failfunction (err{
                    console.log('失败', err);
                  }
                })
              }
            });
          }
        })
        adapter.startDiscovery({
          fail(err) {
            console.log('failed to discover:', err)
          }
        })
      },
      onHide() {
        if (this.nfc) {
          this.nfc.stopDiscovery()
        }
      }
    
    
    
    04-26
    有用 1
    回复 2
    • 福广
      福广
      07-05
      var arr02 = [0x30, 0x04]; 
      var arrayBuffer02 = new Uint8Array(arr02).buffer
                  mifareClassic.transceive({
                    data: arrayBuffer02,
                    success: function (res) {
                      console.log('读取数据:', res);
                    },
                    fail: function (err) {
                      console.log('失败', err);
                    }
                  })
      在执行这个的时候,失败,返回 13017 ,改成var arr02 = [0x30, 0x04,0x01 ]; 返回的数据[0XB2 开头的16字节的 数据,但数据不对。
      07-05
      回复
    • I could fran
      I could fran
      09-02
      您好,这些指令的含义是什么,在哪里可以查到相关说明?
      09-02
      回复
  • 四季辛苦
    四季辛苦
    2020-06-29
    阳光明媚你把我忘了不记得了你记得陈金虎把我忘了
    2020-06-29
    有用 1
    回复
  • 福广
    福广
    07-07

    经验证,水风轻的例子是正确的

    07-07
    有用
    回复
  • ʚɞAaron
    ʚɞAaron
    2020-08-04

    找到解决方法了吗?

    2020-08-04
    有用
    回复 3
    • 赵邻接
      赵邻接
      2020-08-05
      没有的说
      2020-08-05
      回复
    • ʚɞAaron
      ʚɞAaron
      2020-08-05回复赵邻接
      貌似目前不支持 扇区读写.....关键是文档很烂...连个示例都没有
      2020-08-05
      回复
    • 🇾
      🇾
      2020-12-18
      可以读写没有加密的
      2020-12-18
      回复
登录 后发表内容
问题标签