Spec-Zone.ru › Web APIs

NDEFRecord: метод toRecords()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами перед использованием в продуктовой среде.

Метод toRecords() интерфейса NDEFRecord преобразует NDEFRecord.data в последовательность записей на основе NDEFRecord.recordType и возвращает результат. Это позволяет парсить полезные нагрузки типов записей, которые могут содержать вложенные записи, такие как записи смарт-плакатов и внешних типов.

Синтаксис

toRecords()

Параметры

Нет.

Возвращаемое значение

Список NDEFRecord.

Исключения

NotSupported DOMException

Указывает, что пользовательский агент не знает, как обработать это сочетание 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API