无需登录 数据私有 本地保存

NFC标签读取演示 - Web NFC API模拟

15
0
0
0

NFC 标签读取演示

基于 Web NFC API 的交互式演示工具 — 支持模拟扫描与真实 NFC 读取(需 Android Chrome 89+)

检测 API 支持中... 模拟模式
预设 NFC 标签
点击标签卡片开始模拟扫描
🔗
URL 链接 NDEF Well-Known Type: U
https://developer.mozilla.org
📝
纯文本消息 NDEF Well-Known Type: T
"Hello NFC World! 🌍"
📶
WiFi 配置 MIME: application/vnd.wfa.wsc
SSID: CoffeeShop_WiFi
👤
电子名片 MIME: text/vcard
张三 · 138****8888
📋
智能海报 NDEF Well-Known Type: Sp
活动宣传海报 + URL
点击此处或选择左侧标签开始扫描
准备就绪 — 请选择或点击扫描
读取结果
0 次读取
尚未读取任何 NFC 标签
选择标签并扫描查看结果
读取历史记录
暂无读取记录
NFC & Web NFC API 常见问题

NFC(Near Field Communication,近场通信)是一种短距离无线通信技术,通常在 4 厘米以内 工作,频率为 13.56 MHz。它允许电子设备之间进行非接触式点对点数据传输。

常见应用场景:

  • 📱 移动支付(Apple Pay、Google Pay、Samsung Pay)
  • 🚇 交通卡、门禁卡模拟
  • 🏷️ 产品防伪溯源、智能包装
  • 📋 电子名片交换、智能海报
  • 📶 快速 WiFi 配对(扫码连 WiFi)
  • 🔐 设备快速配对(蓝牙、WiFi Direct)

Web NFC API 允许 Web 应用在支持的设备上读取和写入 NFC 标签。它使用 NDEFReaderNDEFWriter 接口。

浏览器支持情况(截至 2025 年):

  • Android Chrome 89+ — 完整支持读取和写入
  • Android Edge 89+ — 基于 Chromium,同样支持
  • ❌ iOS Safari — 不支持(iOS 的 NFC 仅限 Apple Pay 等系统级功能)
  • ❌ 桌面端浏览器 — 不支持(缺乏 NFC 硬件)

要求:HTTPS 连接 + 用户手势触发 + Android 设备 NFC 硬件

NDEF(NFC Data Exchange Format)是 NFC 论坛定义的数据格式标准。每个 NDEF 消息包含一条或多条 NDEF 记录。

每条 NDEF 记录包含:

  • TNF(Type Name Format)— 类型命名格式(0-7)
  • Type — 记录类型标识
  • ID — 可选的记录标识符
  • Payload — 实际数据负载

常见 TNF 类型:

  • TNF=1 (Well-Known):Type="T" 文本, "U" URI, "Sp" 智能海报
  • TNF=2 (MIME Type):如 text/vcard, application/vnd.wfa.wsc
  • TNF=3 (Absolute URI):完整 URI 类型
  • TNF=4 (External):自定义外部类型

基本代码示例:

// 检测支持
if ('NDEFReader' in window) {
  const reader = new NDEFReader();
  
  // 开始扫描(需用户手势触发)
  await reader.scan();
  
  // 监听读取事件
  reader.addEventListener("reading", ({ message, serialNumber }) => {
    console.log("标签序列号:", serialNumber);
    for (const record of message.records) {
      console.log("记录类型:", record.recordType);
      console.log("数据:", record.data);
    }
  });
  
  reader.addEventListener("readingerror", (e) => {
    console.error("读取失败:", e);
  });
}

⚠️ 注意:scan() 必须在用户手势(如点击按钮)的回调中调用,否则浏览器会拒绝。

NFC vs RFID:

  • NFC 是 RFID 的一个子集,工作在 13.56 MHz
  • NFC 通信距离更短(<4cm),更安全
  • NFC 支持双向通信和点对点模式
  • RFID 覆盖范围更广(可达数米),主要用于物流追踪

NFC 标签存储容量:常见 NFC 标签(NTAG 系列)容量从 48 字节到 888 字节不等。NTAG215(504 字节)和 NTAG216(888 字节)是最常用的类型。对于 URL 和文本等简单应用完全足够。

NFC 的安全特性:

  • 🔒 极短通信距离(<4cm)天然防远程窃听
  • 🔒 敏感操作(如支付)需用户显式确认
  • 🔒 Web NFC 要求 HTTPS 和用户手势
  • 🔒 可对 NDEF 记录进行数字签名验证

潜在风险:

  • ⚠️ 恶意标签可能诱导用户访问钓鱼网站
  • ⚠️ 标签克隆(对无加密保护的标签)
  • ⚠️ 中继攻击(需近距离物理接触)

💡 建议:扫描未知 NFC 标签后仔细检查 URL 再打开;对敏感标签使用密码保护或加密。