更新记录
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项目中:
- 下载插件包
- 将插件放入项目的
uni_modules
目录 - 重新编译项目
权限配置
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功能,包括多种标签类型 |
注意事项
- 设备要求: 设备必须支持NFC功能
- 权限: Android需要NFC权限,iOS需要在设置中启用NFC
- 距离: NFC读取需要设备与标签距离很近(通常<4cm)
- 性能: 读取大容量标签时可能需要较长时间
- 兼容性: 不同厂商的NFC标签可能有细微差异
错误处理
常见错误及处理方法:
- "NFC不可用" - 检查设备是否支持NFC并已启用
- "读取超时" - 确保标签与设备距离足够近
- "标签格式不支持" - 标签可能损坏或使用了不支持的格式
- "权限被拒绝" - 检查应用是否有NFC权限
更新日志
v1.0.0
- 初始版本发布
- 支持Android平台NFC读取
- 支持多种标签类型和格式
- 提供详细的标签信息
注意:iOS平台的NFC功能正在开发中,当前版本主要支持Android平台。