ByteScope

NFC Reader

ブラウザで NFC タグを読む。アプリなしで書く。Android の Chrome。この端末の中だけ。

アップロードも記録もしません。タグの中身はこのタブの中だけ、離れたら消えます。

NDEF を読む

タップしてからスキャンします。このページは勝手にタグを読みません。Android の Chrome、HTTPS、操作が必要です。

今このブラウザ: 確認中

nfc の許可: 確認中

NDEF を書く

タグをロック

ブラウザの目安

目安です。上の NDEFReader の実測を見てください。? はこの場で実機確認していません。

APIChromeEdgeFirefoxSafari
NDEFReader (Web NFC)仕様上は Android の Chrome(HTTPS と操作)。デスクトップ Chrome には無い。Edge の Android はこの場では未確認。?
iOS Safari / デスクトップWeb NFC はありません。iPhone とデスクトップでも説明と FAQ は出ます。

今このブラウザ: 確認中

このツールについて

このページは、ブラウザで NFC タグを読む道具であり、アプリなしでタグに書く道具です。Web NFC の NDEFReader が、このタブの中でタグと話します。送りません。動くのは Android の Chrome、HTTPS、タップのあとです。iPhone とデスクトップでも説明、FAQ、正直な対応表は出ます。非対応だからといってページが消えることはありません。

タグに入っているもの

reading イベントは serialNumbermessage.records を持ちます。各レコードは recordTypemediaTypeiddata(DataView)、encodinglangtext は本文と lang と encoding。url / absolute-url がリンクになるのは http:https:mailto:tel: など短い許可リストだけです。javascript:data:vbscript: は文字のままで、危険と書きます。mimemediaType と hex editor と同じ hex。application/vnd.wfa.wsc は Wi-Fi の WPS 資格情報です。SSID、認証、暗号。Network Key はタップするまで隠し、出すときはパスワードが画面に平文で出ると警告します。unknown と外部型(example.com:foo)は hex。名前を付けられないバイトは hex のままです。型は推測しません。

書くと上書き。ロックは永久

ndef.write(message, { overwrite: true }) はタグ上の内容を置き換えます。先にバックアップを出していなければ、元のデータは戻りません。ndef.makeReadOnly() はタグを永久にロックします。救援はありません。初期化も、プログラマも助けになりません。どちらも閉じた危険パネルの奥にあり、ヒューズ書き込みと同じ Arm → Confirm です。ロックはさらに LOCK と打つ必要があります。スキャンは書きません。読み取りの経路で write は走りません。

待っているのは空ではない

端末を当ててまだ何も来ないのは「未読」であり、「タグが空」ではありません。空の NDEF(レコードゼロ)は別の結果です。readingerror は「このタグは読めなかった」。NotAllowedError は許可、またはロック済みであり、タグが無いのではありません。permissions.query({ name: "nfc" }) が throw したら unknown で、denied にはしません。

Android の Chrome だけ

Web NFC の仕様上の舞台は Android の Chrome です。デスクトップ Chrome に NDEFReader はありません。iOS Safari にもありません。Android の Edge はこの場では未確認で、そう書いてあります。検出はマウント後です("NDEFReader" in window)。バージョン表より、上の実測を見てください。

よくある質問

どのブラウザで NFC タグを読めますか?

Android の Chrome です。HTTPS とタップが要ります。デスクトップ Chrome、Firefox、Safari(iPhone 含む)に Web NFC はありません。それらのブラウザでも説明、FAQ、対応表は出ます。null にはしません。

タグの中身を送りますか?

送りません。バイトはこのタブの中です。中身のサーバ往復はありません。バックアップは、手元に保存するファイルです。ページを閉じるとスナップショットは消えます。

スキャンを押しても何も起きません。空のタグですか?

違います。それは待ちです。まだ reading が来ていません。空のタグは、レコードなしの reading です。このページでは二つの文を混ぜません。

makeReadOnly は何をしますか。元に戻せますか?

タグを永久にロックします。以後、書けません。救援はありません。このページはその表現を弱めません。危険パネルを開き、LOCK と打ち、準備、確定、の順です。そのタグへの書き込みを終わらせるつもりが無いなら使わないでください。

タグの URL が javascript: で始まっています。リンクになりますか?

なりません。許可リストの scheme だけが <a href> になります。javascript:data:vbscript:、符号化された亜種、相対プロトコルの // は文字のままで、危険と書きます。タグの中身は信頼しない入力です。innerHTMLeval もありません。

タグに Wi-Fi パスワードが入っています。画面に出ますか?

Network Key は最初は隠れています。タップで出し、パスワードが画面に平文で出ると警告します。バックアップには含めます。鍵を抜いたバックアップはバックアップではないからです。そのファイルは秘密として扱ってください。