小程序nfc相關代碼:?
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, // 必須要傳入 ArrayBuffersuccess: (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
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, // 必須要傳入 ArrayBuffersuccess: (res) => {// res.data 是 ArrayBuffer,轉成數組方便查看console.log(Array.from(new Uint8Array(res.data)));},fail:(err)=>{console.log(err)}})},fail:(err)=>{console.error(err);}})});},fail:(err)=>{}});},