更新记录

1.0.1(2025-08-02)

1.0.0(2025-08-01)


平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云

uni-app(4.66)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x(4.66)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

ohyes-nfc

一个用于uni-app的NFC读取插件,支持Android的NFC标签读取功能。

免责声明

  • 源码无后门代码。
  • 由第三方SDK而导致的任何损失,与作者无关。
  • 使用本插件而导致的任何损失,与作者无关。
  • 使用该插件即代表同意免责声明。

是否使用第三方SDK?

我有需求怎么办?

发送邮件到 helloword202507@163.com 感谢支持

功能特性

  • 🔍 NFC标签读取 - 支持多种NFC标签类型的读取
  • 📱 跨平台支持 - 支持Android和iOS平台
  • 🏷️ 多种标签格式 - 支持NDEF、Mifare Classic、Mifare Ultralight、ISO-DEP等
  • 📊 详细信息获取 - 获取标签ID、技术列表、内容、内存使用情况等
  • 🔒 安全验证 - 支持标签签名验证和密码保护检测

支持的标签类型

  • NDEF标签 - NFC Forum Type 1-5
  • Mifare Classic - 1K/4K标签
  • Mifare Ultralight - 轻量级标签
  • ISO-DEP - ISO14443-4标准标签
  • NFC-A/B/F/V - 各种NFC技术标准

安装

将插件导入到你的uni-app项目中:

  1. 下载插件包
  2. 将插件放入项目的uni_modules目录
  3. 重新编译项目

权限配置

Android权限

插件会自动添加以下权限到AndroidManifest.xml:

<uses-feature android:name="android.hardware.nfc" android:required="true" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.VIBRATE" />

使用方法

基本用法

import { enableNFCRead, disableNFCRead } from '@/uni_modules/ohyes-nfc'

// 启用NFC读取模式
enableNFCRead({
  resolve: (nfcInfo) => {
    console.log('NFC标签信息:', nfcInfo)
    // 处理读取到的NFC信息
  },
  reject: (error) => {
    console.error('NFC读取失败:', error)
  }
})

// 停用NFC读取模式
disableNFCRead()

API文档

enableNFCRead(options)

启用NFC读取模式

参数:

  • options (Object) - 配置选项
    • resolve (Function) - 成功回调,参数为NFCInfo对象
    • reject (Function) - 失败回调,参数为错误信息字符串

disableNFCRead()

停用NFC读取模式

NFCInfo数据结构

读取成功后返回的NFC信息对象包含以下字段:

interface NFCInfo {
  id: string              // 标签唯一ID
  techList: string[]      // 支持的技术列表
  type: string           // 标签类型
  size: number           // 标签容量(字节)
  isWritable: boolean    // 是否可写
  content: string        // 标签内容
  atqa: string          // ATQA值(NFC-A技术)
  sak: string           // SAK值(NFC-A技术)
  signature: string     // 签名状态
  passwordProtected: boolean  // 是否密码保护
  dataFormat: string    // 数据格式
  recordCount: number   // NDEF记录数量
  usedBytes: number     // 已使用字节数
  freeBytes: number     // 剩余字节数
}

字段说明

  • id: 标签的唯一标识符,通常为十六进制字符串
  • techList: 标签支持的NFC技术,如["NfcA", "Ndef", "MifareUltralight"]
  • type: 标签类型描述,如"Type 2 (Ultralight)"
  • size: 标签总容量,单位为字节
  • isWritable: 标签是否支持写入操作
  • content: 解析后的标签内容,包括文本、URL等
  • atqa/sak: NFC-A技术的技术参数
  • signature: 标签签名验证状态
  • dataFormat: 数据格式,如"NFC Forum Type 2"
  • recordCount: NDEF消息中的记录数量
  • usedBytes/freeBytes: 内存使用情况

支持的内容类型

插件能够解析以下类型的NFC内容:

NDEF记录类型

  • 文本记录 - 纯文本内容,支持多语言
  • URI记录 - 网址、电话、邮箱等链接
  • MIME记录 - 多媒体内容
  • 外部类型 - 自定义格式

非NDEF标签

  • Mifare Classic - 读取扇区和块数据
  • Mifare Ultralight - 读取页面数据
  • ISO-DEP - 读取历史字节和高层响应

平台支持

平台 支持状态 说明
Android ✅ 完全支持 支持所有NFC功能,包括多种标签类型

注意事项

  1. 设备要求: 设备必须支持NFC功能
  2. 权限: Android需要NFC权限,iOS需要在设置中启用NFC
  3. 距离: NFC读取需要设备与标签距离很近(通常<4cm)
  4. 性能: 读取大容量标签时可能需要较长时间
  5. 兼容性: 不同厂商的NFC标签可能有细微差异

错误处理

常见错误及处理方法:

  • "NFC不可用" - 检查设备是否支持NFC并已启用
  • "读取超时" - 确保标签与设备距离足够近
  • "标签格式不支持" - 标签可能损坏或使用了不支持的格式
  • "权限被拒绝" - 检查应用是否有NFC权限

更新日志

v1.0.0

  • 初始版本发布
  • 支持Android平台NFC读取
  • 支持多种标签类型和格式
  • 提供详细的标签信息

注意:iOS平台的NFC功能正在开发中,当前版本主要支持Android平台。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.NFC android.permission.VIBRATE

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。