NDEFReader
Ограниченная доступность
Эта функция не относится к базовому уровню, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Экспериментальная: Это экспериментальная технология
Внимательно изучите таблицу совместимости с браузерами перед использованием в продакшене.
Интерфейс NDEFReader API Web NFC используется для чтения и записи данных на совместимые NFC-устройства, например, NFC-метки, поддерживающие NDEF, когда эти устройства находятся в магнитном индукционном поле считывателя.
Конструктор
-
NDEFReader()Экспериментальная -
Возвращает новый объект
NDEFReader.
Методы экземпляра
Интерфейс NDEFReader наследует методы EventTarget, своего родительского интерфейса.
-
NDEFReader.scan()Экспериментальная -
Активирует устройство считывания и возвращает
Promise, который разрешается, когда операция чтения NFC-метки запланирована, или отклоняется, если возникает ошибка аппаратного обеспечения или ошибка разрешения. Этот метод вызывает запрос на разрешение, если разрешение «nfc» ранее не было предоставлено. -
NDEFReader.write()Экспериментальная -
Попытка записать сообщение NDEF в метку и возвращает
Promise, который разрешается, когда сообщение было записано в метку, или отклоняется, если возникает ошибка аппаратного обеспечения или ошибка разрешения. Этот метод вызывает запрос на разрешение, если разрешение «nfc» ранее не было предоставлено.
События
Наследует события от своего родителя, EventTarget.
-
readingЭкспериментальная -
Срабатывает, когда доступно новое чтение со совместимых NFC-устройств.
-
readingerrorЭкспериментальная -
Срабатывает, когда метка находится вблизи устройства чтения, но не может быть прочитана.
Примеры
Обработка начальных чтений во время записи
Пример ниже демонстрирует, как согласовать общую обработку чтения и обработку, используемую специально для одной записи. Для записи метка должна быть найдена и прочитана. Это позволяет проверить, является ли это действительно метка, в которую вы хотите записать. Поэтому рекомендуется вызывать write() из события чтения.
const ndef = new NDEFReader();
let ignoreRead = false;
ndef.onreading = (event) => {
if (ignoreRead) {
return; // write pending, ignore read.
}
console.log("We read a tag, but not during pending write!");
};
function write(data) {
ignoreRead = true;
return new Promise((resolve, reject) => {
ndef.addEventListener(
"reading",
(event) => {
// Check if we want to write to this tag, or reject.
ndef
.write(data)
.then(resolve, reject)
.finally(() => (ignoreRead = false));
},
{ once: true },
);
});
}
await ndef.scan();
try {
await write("Hello World");
console.log("We wrote to a tag!");
} catch (err) {
console.error("Something went wrong", err);
}
Спецификации
| Спецификация |
|---|
| Web NFC # the-ndefreader-object |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
NDEFReader |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
NDEFReader |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
makeReadOnly |
Нет | Нет | Нет | Нет | Нет | 100 | Нет | 69 | Нет | 19.0 | 100 |
reading_event |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
readingerror_event |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
scan |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
secure_context_required |
Нет | Нет | Нет | Нет | Нет | 89 | Нет | 63 | Нет | 15.0 | 89 |
write |
Нет | Нет | Нет | Нет | Нет | 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/NDEFReader