咨询QQ 583069500
我们做幼儿园刷卡 接触过不少读卡器的解析 可以尝试下
智密科技承接安卓/IOS双端插件开发、安卓/IOS App外包开发、项目整体外包、各类硬件产品开发
我们的优势:
1、全职UI、前端、安卓、IOS、后端、硬件工程师,每个岗位都是专职开发更专业,选择智密您就拥有了一个完整的技术支持团队;
2、定制的产品无论是插件、APP、整套系统,一年内免费Bug修复;
3、定制的APP和整体项目软件著作权归客户所有,并协助软件著作权申请;
4、软件开发源头工厂,定价合理,与开发人员直接沟通,避免需求理解问题,提高开发效率;
5、软件均为自主开发,不基于网上代码进行二次开发,保障系统安全性;
6、软件源码自己开发,出现BUG能快速修复,新需求能快速实现;
7、签订开发合同,通过条款约定双方权利义务,服务和售后有保障;
8、我们的插件尽可能做到让用户UI自定义,用户改变UI之后无需联系我们修改插件,只要前端调整UI即可。
我们唯一的劣势:价格可能会比别人高
我们不提供廉价的插件和服务,服务和收费是成正比的。
我们的插件定价基本都在千元以上,插件使用成本=插件购买费用 插件集成成本 插件填坑成本 后续更新成本
在没有好的技术支持前提下,后面三项成本将远远大于插件购买费用,选择智密科技,实现双赢
经过几年积累,已拥有大量双端插件,常见功能的插件几乎都能直接试用,欢迎各位进群了解
插件沟通交流群:755910061(欢迎进群了解我们的技术支持方式及我们的技术能力)
商务QQ:57570616(这是传说中的搅屎棍,光动嘴皮子不干活的,进群最实在)
商务微信:ZhimiTec(同上…)
在uni-app中读取安卓手机NFC(近场通信)M1卡的物理卡号,你可以使用H5+的NFC模块。以下是一个基本的示例代码,展示如何在uni-app中实现这一功能。
首先,确保你的项目已经配置了NFC权限。在manifest.json
中,添加NFC权限:
"plus": {
"distribute": {
"android": {
"permissions": [
"android.permission.NFC"
]
}
}
}
然后,在你的页面或组件中,使用H5+的NFC API来读取M1卡。以下是一个示例代码:
// 引入H5+扩展API
const nfc = plus.nfc;
export default {
data() {
return {
cardId: ''
};
},
onLoad() {
// 注册NFC适配器状态变化事件监听器
nfc.addEventListener('statechange', (e) => {
if (e.newState === 'on') {
// NFC已打开,开始注册NDEF格式监听
nfc.registerNdefFormatListener(
(ndefMsg) => {
// 处理读取到的NDEF信息(这里我们主要关注M1卡的UID)
console.log('NDEF消息:', ndefMsg);
// 注意:M1卡的UID通常不是通过NDEF消息获取的,而是通过技术卡监听器获取
},
(e) => {
console.error('注册NDEF监听失败:', e.message);
}
);
// 注册技术卡监听器(如ISO14443-3A(M1卡))
nfc.registerTechListener(
['android.nfc.tech.IsoDep'],
(tag) => {
// 获取IsoDep对象,用于与M1卡通信
const isoDep = tag.getTech(plus.nfc.NfcTech.ISO_DEP);
// 读取卡片的UID(物理卡号)
isoDep.connect();
isoDep.transceive([0x00, 0xA4, 0x04, 0x00, 0x07, 0xA0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x07, 0x80]);
isoDep.transceive([0x00, 0xB0, 0x00, 0x00, 0x10]).then((response) => {
// 解析UID(这只是一个示例,实际UID的获取方式可能有所不同)
const uid = Array.from(response.slice(4)).map(byte => String.fromCharCode(byte & 0xFF).charCodeAt(0).toString(16).padStart(2, '0')).join('');
this.cardId = uid;
console.log('M1卡UID:', uid);
}).catch((error) => {
console.error('读取卡片UID失败:', error);
}).finally(() => {
isoDep.close();
});
},
(e) => {
console.error('注册技术卡监听失败:', e.message);
}
);
} else if (e.newState === 'off') {
console.log('NFC已关闭');
}
});
// 打开NFC适配器
nfc.enableNFC(false, (e) => {
if (e.code !== 0) {
console.error('打开NFC失败:', e.message);
} else {
console.log('NFC已打开');
}
});
}
};
注意:
- 上面的代码示例是基于H5+的NFC API,仅适用于5+ App(DCloud的HBuilderX生成的App)。
- 读取M1卡的UID通常需要特定的APDU命令,上面的命令可能需要根据实际情况调整。
- NFC操作涉及硬件交互,因此在实际应用中需要处理各种异常情况,如设备不支持NFC、用户拒绝权限请求等。