關於這個工具
這一頁是線上 NFC 讀取器,也是不用裝 App 就能寫入 NFC 標籤的地方。它用 Web NFC 的 NDEFReader,在這個分頁裡跟標籤說話。不會上傳。能跑的是 Android 的 Chrome、HTTPS、而且要你點一下。iPhone 和桌面使用者照樣看得到說明、FAQ,還有一張誠實的支援表——工具不會因為你的瀏覽器沒有 API 就整頁消失。
標籤裡可以有什麼
reading 事件帶著 serialNumber 和 message.records。每筆 record 有 recordType、mediaType、id、data(DataView)、encoding、lang。text 顯示文字加上 lang 和 encoding。url / absolute-url 只有 http:、https:、mailto:、tel: 這種白名單才會做成連結——javascript:、data:、vbscript: 維持純文字,並標成不安全。mime 是 mediaType 加上跟 hex editor 同一套 hex。application/vnd.wfa.wsc 是 Wi-Fi 的 WPS 憑證:SSID、認證、加密;Network Key 預設遮蔽,要點一下才顯示,並警告畫面上會出現明文密碼。unknown 和外部型別(example.com:foo)走 hex。認不出來的 bytes 一律 hex,不會猜一個型別。
寫入會覆蓋。鎖定是永久的
ndef.write(message, { overwrite: true }) 會蓋掉標籤上現有的內容。除非你已經從讀取結果匯出備份,否則舊內容救不回來。ndef.makeReadOnly() 會把標籤永久鎖死。沒有救援——沒有重設、沒有燒錄器能救。兩個動作都藏在預設關閉的危險區後面,接著是跟 fuse 寫入同一套「準備 → 確認」。鎖定還要你打字輸入 LOCK。掃描過程絕不會寫入。讀是讀,寫是寫。
還沒讀到,不是空的
手機湊上去、什麼都還沒出現,是「還沒讀到」,不是「標籤是空的」。空的 NDEF(零筆 record)是另一種結果。readingerror 是「這張標籤讀不到」。NotAllowedError 是權限或標籤已被鎖死,不是沒有標籤。permissions.query({ name: "nfc" }) 若 throw,顯示 unknown,不會寫成 denied。
只有 Android Chrome
Web NFC 的規格舞台是 Android Chrome。桌面 Chrome 沒有 NDEFReader。iOS Safari 也沒有。Edge 在 Android 上這裡沒實測,格子會標未實測。能力偵測在掛載之後才做("NDEFReader" in window)。請相信上面那列現場結果,不要背版本表。