微信小程序nfc指令异常记录

小程序nfc相关代码:

javascript 复制代码
readEvent(){
    
    wx.getNFCAdapter().startDiscovery({
      success:(res)=>{
        console.log('--------------start--------')
        console.log(res);
        wx.getNFCAdapter().onDiscovered(
          callback=>{
            console.log('------------onDiscovered----------')
            console.log(callback);
            console.log(Array.from(new Uint8Array(callback.id)))
            console.log('------------getNfcA----------')
            console.log('------------connect----------')
            wx.getNFCAdapter().getNfcA().connect({
              success:(res)=>{
                console.info(res)
                console.log('------------transceive----------')
                wx.getNFCAdapter().getNfcA().transceive({
                  data: new Uint8Array([0x30, 0x04]).buffer, // 必须要传入 ArrayBuffer
                  success: (res) => {
                      // res.data 是 ArrayBuffer,转成数组方便查看
                      console.log(Array.from(new Uint8Array(res.data)));
                  },
                  fail:(err)=>{
                    console.log(err)
                  }
              })
              
              },
              fail:(err)=>{
                console.error(err);
              }
            })
          }
        );
      },
      fail:(err)=>{

      }
    });
    
  },

connect 成功但是指令报错,报错信息:

transceive:fail:system internal error:tag was lost

解决方式,替换NfcA

javascript 复制代码
readEvent(){
    
    wx.getNFCAdapter().startDiscovery({
      success:(res)=>{
        console.log('--------------start--------')
        console.log(res);
        wx.getNFCAdapter().onDiscovered(
          callback=>{
            console.log('------------onDiscovered----------')
            console.log(callback);
            console.log(Array.from(new Uint8Array(callback.id)))
            console.log('------------getNfcA----------')
            console.log('------------connect----------')
            wx.getNFCAdapter().getIsoDep().connect({
              success:(res)=>{
                console.info(res)
                console.log('------------transceive----------')
                wx.getNFCAdapter().getIsoDep().transceive({
                  data: new Uint8Array([0x30, 0x04]).buffer, // 必须要传入 ArrayBuffer
                  success: (res) => {
                      // res.data 是 ArrayBuffer,转成数组方便查看
                      console.log(Array.from(new Uint8Array(res.data)));
                  },
                  fail:(err)=>{
                    console.log(err)
                  }
              })
              
              },
              fail:(err)=>{
                console.error(err);
              }
            })
          }
        );
      },
      fail:(err)=>{

      }
    });
    
  },
相关推荐
whinc18 小时前
🚀 两年小程序开发,我把踩过的坑做成了开源 Skills
前端·微信小程序·ai编程
Lupino21 小时前
烧掉 10 刀 API 费,我才明白小程序虚拟列表根本不用“库”!
react.js·微信小程序
小溪彼岸2 天前
是时候给想做小程序的小伙伴泼盆冷水了
微信小程序
远山枫谷3 天前
一文理清页面/组件通信与 Store 全局状态管理
前端·微信小程序
木易士心4 天前
一文读懂:微信小程序云数据库直连原理与使用指南
微信小程序·serverless
明月_清风4 天前
小程序云函数:从入门到全栈的“降维打击”指南
前端·微信小程序·小程序·云开发
拉不动的猪5 天前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
WangHappy7 天前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序
小时前端7 天前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
icebreaker8 天前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序