收藏
回答

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()

    }

  }

})





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

6 个回答

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

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

    2020-12-16
    有用
    回复 2
  • 俊逸非凡
    俊逸非凡
    09-01

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

    09-01
    有用
    回复 1
  • ㅤ
    08-16

    解决了嘛?

    08-16
    有用
    回复
  • 星星
    星星
    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

    其他代码不变。

    03-15
    有用
    回复 3
    • 章鱼猫
      章鱼猫
      03-18
      大佬知道读取二代身份证信息的指令是多少吗?
      03-18
      回复
    • I could fran
      I could fran
      08-30
      请问这些标签有哪些指令,在什么地方可以查到呢
      08-30
      回复
    • 人生梦随缘
      人生梦随缘
      09-10
      同问
      09-10
      回复
  • 肥牛
    肥牛
    03-10

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

    03-10
    有用
    回复
  • Trip
    Trip
    01-12

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

    01-12
    有用
    回复
登录 后发表内容
问题标签