0

我正在尝试使用 react-native-NFC-Manager 在我的 react-native 应用程序中添加 NFC 功能,它工作正常。但问题是我第一次无法读取/写入 NFC 卡。第一次,我需要使用 NFC Tool 应用程序编写一个新标签,将“NdefFormatable”转换为“Ndef”,否则我无法读取/写入 NFC 卡

我用这段代码写数据:

await NfcManager.requestTechnology(NfcTech.Ndef, {
      alertMessage: 'Ready to write some NDEF',
    });

    const bytes = Ndef.encodeMessage([Ndef.textRecord('Hello NFC')]);

    if (bytes) {
      await NfcManager.ndefHandler // Step2
        .writeNdefMessage(bytes); // Step3

      if (Platform.OS === 'ios') {
        await NfcManager.setAlertMessageIOS('Successfully write NDEF');
      }
    }

这个问题有什么解决办法吗?

4

1 回答 1

0

一个两部分的答案。

对于Android,如果您的代码不只是要求检测已经格式化的标签,NfcManager.requestTechnology(NfcTech.Ndef,而是使用更基本NfcManager.setEventListener(NfcEvents.DiscoverTag, (tag) => {的检测标签的方法,那么您可以编写一个未格式化的标签(作为编写格式)

对于 iOS 来说要复杂得多,因为它不允许写入未格式化的标签https://github.com/revtel/react-native-nfc-manager/blob/main/FAQ.md#ios-cannot-write-ndef-进入NFC标签

作为一个简单的背景,一个未格式化的 Ndef 格式化标签有一个能力容器记录但没有 TLV 条目,格式化添加一个空白 TLV 条目,而在写入时添加一个带有非空白 TLV 条目的 TLV 条目。

于 2021-11-12T11:53:12.027 回答