收藏
回答

nfc 功能,NfcA.transceive为什么总是失败?

api:NfcA.transceive

基础库:2.14.2

微信版本:7.0.21

华为手机

能读到卡片的类型,也能连接上卡片,nfcA.connect可以成功,但是transcevie就失败了

错误信息:transceive:fail:system internal error

错误code:13017



const app = getApp()


Page({

  data: {

   

  },

  onLoad: function () {

    const adapter = wx.getNFCAdapter();

    console.log(adapter);

    this.adapter = adapter;



    adapter.onDiscovered(function (res){

      console.log('读到卡片了', res);

      

      //console.log(res.techs);


      if(res.techs.includes(adapter.tech.nfcA)){

        console.log('发现'+adapter.tech.nfcA+'卡'); 

        const nfcA = adapter.getNfcA();

        app.nfcA = nfcA;

        nfcA.connect({

          success: function(res){

            console.log('设备已连接', res)

            nfcA.transceive({

              data:new ArrayBuffer(0),

              success: function(res){

                console.log('发送数据成功, 接收数据如下:', res);

              },

              fail: function(err){

                console.log('发送数据失败', err);

              }

            })

          },

          fail: function(err){

            console.log('设备联接错误', err);

          }

        });


      }


    })


    adapter.startDiscovery({

      success: function(res){

        console.log('成功发现设备',res);

      },

      fail: function(err){

        console.log('发现设备出错', err);

      },

      complete: function(){


      }

    });



  },

  onHide() {

    if (this.nfc) {

      this.nfc.stopDiscovery()

    }

  }

})





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

11 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2020-12-16

    指令没写对,小程序只是将系统的读写能力开放出去,没有额外的定义;具体对于什么类型的标签,有什么指令可以具体做什么事情,需要开发者自己去了解标准的情况

    2020-12-16
    有用
    回复 2
  • 星星
    星星
    2021-03-15

     data:new ArrayBuffer(0),

    这个指令参数必须赋值正确,要看根据标签实际所用的的指令,来写这个指令数组,例如,我手头有一款测温标签,有一条测温指令是0x40,0xc0,0x06,0x00,0x00,0x00,0x00,那么,可以这样写,var array =  new Uint8Array([0x40,0xc0,0x06,0x00,0x00,0x00,0x00]);//指令数组必须正确,多一个或少一个字节,都会出现出错。

    var NFCdata =  array.buffer

    data:NFCdata

    其他代码不变。

    2021-03-15
    有用 1
    回复 4
    • Darryl
      Darryl
      2021-03-18
      大佬知道读取二代身份证信息的指令是多少吗?
      2021-03-18
      回复
    • I could fran
      I could fran
      2021-08-30
      请问这些标签有哪些指令,在什么地方可以查到呢
      2021-08-30
      回复
    • 人生梦随缘
      人生梦随缘
      2021-09-10
      同问
      2021-09-10
      回复
    • Simon
      Simon
      2022-03-15回复Darryl
      有找到二代身份证的指令吗?
      2022-03-15
      回复
  • 小薇安
    小薇安
    2023-09-06

    指令怎么写才正确

    2023-09-06
    有用
    回复
  • nico
    nico
    2022-12-07

    指令不对。我试了NTAG213的指令都可以,1b授权 和30指令读取数据都可以的。另外transceive data 应该是ArrayBuffer。 返回的data 也是个ArrayBuffer

    2022-12-07
    有用
    回复
  • L先生
    L先生
    2022-05-20

    有大佬解决这个问题了吗

    2022-05-20
    有用
    回复 2
    • 一次就好!
      一次就好!
      2022-11-14
      大佬,我连接不起。请问下连接具体是怎么操作的
      2022-11-14
      回复
    • nico
      nico
      2022-12-07
      指令估计不对。我试了NTAG213的指令都可以,1b授权 和30指令读取数据都可以的。另外transceive data 应该是ArrayBuffer。 返回的data 也是个ArrayBuffer
      2022-12-07
      回复
  • 岁月逢花°
    岁月逢花°
    2022-01-19

    大佬解决了吗?我也遇到这个问题

    2022-01-19
    有用
    回复
  • Genosse.
    Genosse.
    2022-01-17

    NFCA指令 (IOS 14443-3A)

    Read ID                         0x78
    Read all bytes                  0x00
    Read 8 bytes                    0x02
    Read 1 bytes                    0x01
    Read 16 bytes                   0x30
    Read segment                    0x10
    Write 4 bytes                   0xa2
    Write 1 bytes with erase        0x53
    Write 1 bytes without erase     0x1a
    Write 8 bytes with erase        0x54
    Write 8 bytes without erase     0x1b
    Sector select                   0xc2
    Get version                     0x60
    eg:
    	Read 16 bytes from block 0x04        0x30:0x04
    eg:
    	Write FF:FF:FF:FF on block 0x04      0xa2:0x04:0xff:0xff:0xff:0xff
    
    
    Check command                   0x06
    Check response                  0x07
    Update command                  0x08
    Update response                 0x09
    Select                          0xa4 
    Select by name                  0x04
    Select by file id               0x00
    Read binary                     0xb0
    Update binary                   0xd6
    Read ECC Signature              0x3c:0x00
    Read counter                    0x39:0x02
    
    2022-01-17
    有用
    回复 1
    • 岁月逢花°
      岁月逢花°
      2022-01-19
      这个怎么写入呀,比如我要吧一个网址写入NFCA类型的卡片  指令怎么写?
      麻烦大佬帮帮忙呀
      2022-01-19
      回复
  • 俊逸非凡
    俊逸非凡
    2021-09-01

    大佬解决了吗,我也遇到这个问题了

    2021-09-01
    有用
    回复 1
    • 人生梦随缘
      人生梦随缘
      2021-09-10
      解决了吗
      2021-09-10
      回复
  • ㅤ
    2021-08-16

    解决了嘛?

    2021-08-16
    有用
    回复
  • 肥牛
    肥牛
    2021-03-10

    大佬们解决了吗我也是遇到了这个问题

    2021-03-10
    有用
    回复

正在加载...

登录 后发表内容
问题标签