收藏
回答

为什么NFC读写报参数错误13011参数错误?

 writeNFC() {

    let app = this;

    // 获取NFC适配器实例

    const nfc = wx.getNFCAdapter();

    // 检查NFC是否可用

    nfc.startDiscovery({

      success: (res) => {

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

        // 监听NFC标签发现

        nfc.onDiscovered((res) => {

          console.log('NFC标签发现', res); // 打印完整的发现结果

          if (res.messages && res.messages.length > 0) {

            const nfcData = res.messages[0];

            console.log('NFC数据', nfcData); // 打印具体的NFC数据

           app.$modal.alert('NFC数据tnf1', JSON.stringify(nfcData));

            // 准备要写入的NDEF数据

            const ndefMessage = [{

              tnf: 2, // URI类型

              type: '',

              id: '',

              payload: 'https://www.example.com'

            }];

            let Ndef = nfc.getNdef();

    Ndef.connect({success:(res)=>{

wx.showToast({

  title: 'nde连接成功',

  icon: 'success'

})

// 写入NDEF数据

  const apduCommand = new Uint8Array();

 

  Ndef.writeNdefMessage({

   texts: ['Hello World', '小程序NFC测试'],

   success: (res) => {

     console.log('写入成功', res);

     wx.showToast({

       title: '写入成功',

       icon: 'success'

     });

   },

   fail: (err) => {

     console.error('写入失败', err);

   app.$modal.alert('写入失败', JSON.stringify(err));

     wx.showToast({

       title: '写入失败',

       icon: 'none'

     });

   }

});

Ndef.onNdefMessage((res) => {

   console.log('NFC标签发现', res); // 打印完整的发现结果

   app.$modal.alert('NFC数据res', JSON.stringify(res));

   if (res.messages && res.messages.length > 0) {

  

     const nfcData = res.messages[0];

     console.log('NFC数据', nfcData); // 打印具体的NFC数据

     if (nfcData.records && nfcData.records.length > 0) {

       nfcData.records.forEach(record => {

         if (record.tnf === 2) {

           // 处理URI类型

           try {

             const uri = record.type + record.payload;

          

             console.log('解析的URI:', uri);

             app.$modal.alert('解析的URI', uri);

           } catch (e) {

             console.error('解析URI失败', e);

           }

         } else if (record.tnf === 1) {

           // 处理其他类型的NDEF记录

           console.log('NDEF记录', record);

          

           app.$modal.alert('NFC数据tnf1', JSON.stringify(record));

         }

       });

     } else {

       console.error('NFC记录为空');

     }

   } else {

     console.error('没有发现NFC标签');

   }

});

 

 

}})

          

          } else {

            console.error('没有发现NFC标签');

          }

        });

      },

      fail: (err) => {

        console.error('NFC发现失败', err);

        wx.showToast({

          title: 'NFC不可用',

          icon: 'none'

        });

      }

    });

  },

回答关注问题邀请回答
收藏
登录 后发表内容