NDEFReader: phương thức scan()

Limited availability

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.

Phương thức scan() của giao diện NDEFReader kích hoạt thiết bị đọc và trả về một Promise giả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 đó.

Cú pháp

js
scan(options)

Tham số

options Optional

Một đối tượng với các thuộc tính sau:

signal

Một AbortSignal cho phép hủy thao tác scan() này.

Giá trị trả về

Một Promise được giải quyết ngay lập tức sau khi lên lịch các thao tác đọc cho bộ điều hợp NFC.

Ngoại lệ

Phương thức này không ném ngoại lệ; thay vào đó, nó từ chối promise được trả về, truyền DOMExceptionname là một trong những giá trị sau:

AbortError DOMException

Được trả về nếu thao tác scan bị hủy với AbortSignal được truyền trong đối số options.

InvalidStateError DOMException

Được trả về nếu đã có một lần quét đang diễn ra.

NotAllowedError DOMException

Được trả về nếu quyền cho thao tác này bị từ chối.

NotSupportedError DOMException

Được trả về nếu không có bộ điều hợp NFC tương thích với Web NFC hoặc không thể thiết lập kết nối.

Ví dụ

Xử lý lỗi quét

Ví dụ này cho thấy điều gì xảy ra khi promise scan bị từ chối và readingerror được ném ra.

js
const ndef = new NDEFReader();
ndef
  .scan()
  .then(() => {
    console.log("Scan started successfully.");
    ndef.onreadingerror = (event) => {
      console.log(
        "Error! Cannot read data from the NFC tag. Try a different one?",
      );
    };
    ndef.onreading = (event) => {
      console.log("NDEF message read.");
    };
  })
  .catch((error) => {
    console.log(`Error! Scan failed to start: ${error}.`);
  });

Thông số kỹ thuật

Specification
Web NFC
# dom-ndefreader-scan

Tương thích trình duyệt