nfc uniapp
NFC 功能在 UniApp 中的实现
UniApp 是一个基于 Vue.js 的跨平台开发框架,支持 iOS、Android 以及小程序等多端开发。NFC(近场通信)功能在 UniApp 中的实现主要依赖于原生插件或 API,具体方法如下:
使用条件与准备
NFC 功能需要设备硬件支持,且仅限 Android 平台(iOS 对 NFC 的开放权限有限)。确保设备已开启 NFC 功能,并在 manifest.json 中配置相关权限:
{
"app-plus": {
"distribute": {
"android": {
"permissions": [
"android.permission.NFC"
]
}
}
}
}
调用原生 NFC API
UniApp 通过 uni.requireNativePlugin 调用原生模块实现 NFC 读写。以下是一个基础示例:
// 引入原生 NFC 模块
const nfcManager = uni.requireNativePlugin('NfcManager');
// 初始化 NFC
nfcManager.init((result) => {
if (result.success) {
console.log('NFC 初始化成功');
} else {
console.error('NFC 初始化失败:', result.error);
}
});
// 监听 NFC 标签
nfcManager.registerTagEvent((tag) => {
console.log('检测到 NFC 标签:', tag);
// 解析标签数据
const payload = tag.ndefMessage[0].payload;
const text = String.fromCharCode.apply(null, payload.slice(3));
console.log('标签内容:', text);
});
注意事项
- 兼容性:不同 Android 版本对 NFC 的支持可能不同,需测试目标设备的兼容性。
- 权限申请:部分 Android 设备需要动态申请 NFC 权限,可通过
uni.requestPermissions实现。 - iOS 限制:iOS 仅支持部分 NFC 功能(如读取 NDEF 格式标签),且需在
manifest.json中声明com.apple.developer.nfc.readersession.formats。
扩展插件
若原生 API 功能不足,可集成第三方插件(如 cordova-plugin-nfc):

- 将插件放入原生工程目录(如
nativeplugins)。 - 在
manifest.json中注册插件:"app-plus": { "plugins": { "NfcPlugin": { "version": "1.0.0", "provider": "org.chromium.nfc" } } }
示例代码:写入 NFC 标签
const nfc = uni.requireNativePlugin('NfcPlugin');
nfc.write(
['Hello, UniApp'], // 写入的文本数据
() => console.log('写入成功'),
(err) => console.error('写入失败:', err)
);
通过以上方法,可以在 UniApp 中实现基本的 NFC 读写功能。实际开发中需结合具体业务需求调整代码逻辑。






