如何从 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 记录对象中获取纯文本?的主要内容,如果未能解决你的问题,请参考以下文章