NDEFReader
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Giao diện NDEFReader của Web NFC API được dùng để đọc từ và ghi dữ liệu vào các thiết bị NFC tương thích, ví dụ như thẻ NFC hỗ trợ NDEF, khi các thiết bị này nằm trong trường cảm ứng từ của reader.
Hàm khởi tạo
NDEFReader()Thử nghiệm-
Trả về một đối tượng
NDEFReadermới.
Phương thức phiên bản
Giao diện NDEFReader kế thừa các phương thức của EventTarget, giao diện cha của nó.
NDEFReader.scan()Thử nghiệm-
Kích hoạt thiết bị đọc và trả về một
Promisegiải quyết khi thao tác đọc thẻ NFC được lên lịch hoặc bị từ chối nếu gặp lỗi phần cứng hoặc quyền. Phương thức này kích hoạt yêu cầu cấp quyền nếu quyền "nfc" chưa được cấp trước đó. NDEFReader.write()Thử nghiệm-
Cố gắng ghi thông điệp NDEF vào thẻ và trả về một
Promisegiải quyết khi thông điệp đã được ghi vào thẻ hoặc bị từ chối nếu gặp lỗi phần cứng hoặc quyền. Phương thức này kích hoạt yêu cầu cấp quyền nếu quyền "nfc" chưa được cấp trước đó.
Sự kiện
Kế thừa sự kiện từ đối tượng cha, EventTarget.
readingThử nghiệm-
Được kích hoạt khi có lần đọc mới từ các thiết bị NFC tương thích.
readingerrorThử nghiệm-
Được kích hoạt khi thẻ ở gần thiết bị đọc nhưng không thể đọc được.
Ví dụ
>Xử lý lần đọc ban đầu trong khi ghi
Ví dụ dưới đây cho thấy cách điều phối giữa handler đọc chung và một handler được dùng cụ thể để ghi một lần. Để ghi, cần tìm và đọc thẻ. Điều này cho phép bạn kiểm tra xem thẻ có thực sự là thẻ bạn muốn ghi vào không. Đó là lý do tại sao nên gọi write() từ sự kiện đọc.
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);
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| Web NFC> # the-ndefreader-object> |