如何从 NDEF 记录对象中获取纯文本?

Posted

技术标签:

【中文标题】如何从 NDEF 记录对象中获取纯文本?【英文标题】:How to get plain text from NDEF Record object? 【发布时间】:2020-10-03 10:03:35 【问题描述】:

我正在尝试使用 Web NFC 读取 NFC 标签。我已收到消息对象,我能够读取记录 message.records[0],但我无法获取存储在该 NFC 记录中的纯文本“Hello world”。

scanRfid.addEventListener("click", async () => 
  //curlog("User clicked scan button");

  try 
    const reader = new NDEFReader();
    await reader.scan();
   // curlog("> Scan started");

    reader.addEventListener("error", (event) => 
      console.log(`Argh! $event.message`);
    );

    reader.addEventListener("reading", ( message, serialNumber ) => 
      
      //curlog(`> Records: ($message.records)`);
      //processMessage(message);
      console.log(message.records[0[);
      
    );
   catch (error) 
    curlog("Argh! " + error);
  
);

【问题讨论】:

很高兴您找到了解决问题的方法。但是,实际的答案/解决方案应该被编辑到您的问题中。一般来说,您应该edit 来澄清该问题,但不要在其中包含答案。您应该使用用于解决问题的代码/解决方案创建自己的答案,然后接受它(系统可能需要 48 小时延迟才能这样做)。当你自己解决了问题时,answering your own question is encouraged。 【参考方案1】:

如https://web.dev/nfc/#read-and-write-a-text-record 中所述,文本记录数据可以使用以记录编码属性实例化的TextDecoder 进行解码。请注意,文本记录的语言可通过其 lang 属性获得。

function readTextRecord(record) 
  console.assert(record.recordType === "text");
  const textDecoder = new TextDecoder(record.encoding);
  console.log(`Text: $textDecoder.decode(record.data) ($record.lang)`);

【讨论】:

以上是关于如何从 NDEF 记录对象中获取纯文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?

如何从***中获取纯文本

如何从纯文本文件中获取字符串[重复]

如何从 Node.js IMAP 模块中的正文获取纯文本

从公共记录类型中获取所有记录并将其保存到设备

没有记录时如何在gridview“未找到记录”中显示文本