NDEFRecord: метод toRecords()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами перед использованием в продуктовой среде.
Метод toRecords() интерфейса NDEFRecord преобразует NDEFRecord.data в последовательность записей на основе NDEFRecord.recordType и возвращает результат. Это позволяет парсить полезные нагрузки типов записей, которые могут содержать вложенные записи, такие как записи смарт-плакатов и внешних типов.
Синтаксис
toRecords()
Параметры
Нет.
Возвращаемое значение
Список NDEFRecord.
Исключения
-
NotSupportedDOMException -
Указывает, что пользовательский агент не знает, как обработать это сочетание
NDEFRecord.dataиNDEFRecord.recordType.
Примеры
Чтение внешней записи с сообщением NDEF в качестве полезной нагрузки
В примере используются записи внешних типов для создания записей, определённых приложением. Эти записи могут содержать NDEFMessage в качестве полезной нагрузки, со своими объектами NDEFRecord, включая локальные типы, используемые в контексте приложения. Обратите внимание, что запись смарт-плаката также содержит сообщение NDEF в качестве полезной нагрузки.
Поскольку NDEF не гарантирует порядок записей, использование записи внешнего типа с сообщением NDEF в качестве полезной нагрузки может быть полезно для инкапсуляции связанных данных.
Этот пример демонстрирует, как читать внешнюю запись для социальных постов, содержащую NDEFMessage, содержащую текстовую запись и запись с локальным типом "act" (действие), с определением, заимствованным из смарт-плаката, но используемую в контексте локального приложения.
const ndefReader = new NDEFReader();
await ndefReader.scan();
ndefReader.onreading = (event) => {
const externalRecord = event.message.records.find(
(record) => record.type === "example.com:smart-poster",
);
let action, text;
for (const record of externalRecord.toRecords()) {
if (record.recordType === "text") {
const decoder = new TextDecoder(record.encoding);
text = decoder.decode(record.data);
} else if (record.recordType === ":act") {
action = record.data.getUint8(0);
}
}
switch (action) {
case 0: // do the action
console.log(`Post "${text}" to timeline`);
break;
case 1: // save for later
console.log(`Save "${text}" as a draft`);
break;
case 2: // open for editing
console.log(`Show editable post with "${text}"`);
break;
}
};
Спецификации
| Спецификация |
|---|
| Web NFC # dom-ndefrecord-torecords |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
toRecords |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/NDEFRecord/toRecords