前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序实现RFID技术手机nfc标签识别

微信小程序实现RFID技术手机nfc标签识别

原创
作者头像
菜菜有点菜
发布2024-05-04 16:00:17
1480
发布2024-05-04 16:00:17

最近参加挑战杯在开发项目的时候遇到了一个小程序识别nfc的需求,经过翻阅官方文档。

最终实现了对nfc芯片的识别。

实现代码如下:

代码语言:javascript
复制
read() {
				var that = this;
				const adapter = wx.getNFCAdapter();
				uni.showToast({
					'icon': 'success',
					'title': '监听成功'
				})
				adapter.onDiscovered(res => {
					let tagId = res.id;
					if (res.techs.includes(adapter.tech.nfcA)) {
						const uid = that.get(res);
						that.handle(uid);
					} else {
						wx.showToast({
							title: '卡片类型有误!',
							icon: 'error'
						});
					}


				})
				adapter.startDiscovery({
					success: function(res) {
						console.log('startDiscovery:', res);
					},
					fail(err) {
						console.log('failed to discover:', err)
						if (!err.errCode) {
							wx.showToast({
								title: '请检查NFC功能是否正常!',
								icon: 'none'
							})
							return
						}

						switch (err.errCode) {
							case 13000:
								wx.showToast({
									title: '设备不支持NFC!',
									icon: 'none'
								})
								break;
							case 13001:
								wx.showToast({
									title: '系统NFC开关未打开!',
									icon: 'none'
								})
								break;
							case 13019:
								wx.showToast({
									title: '用户未授权!',
									icon: 'none'
								})
								break;
							case 13010:
								wx.showToast({
									title: '未知错误!',
									icon: 'none'
								})
								break;
						}

					}

				})

			},
			get(res) {
				const byteArray = new Uint8Array(res.id);
				let uid = '';
				for (let i = 0; i < byteArray.length; i++) {
					let hex = byteArray[i].toString(16).toUpperCase();
					if (hex.length === 1) {
						hex = '0' + hex;
					}
					uid += hex;
				}
				return uid;
			},
			handle(uid) {
				uni.showModal({
					title: '呼应上了',
					content: '智囊编号:' + uid,
					confirmText: '打开',
					cancelColor: '关闭',
					success(res) {
						if (res.confirm) {
							uni.navigateTo({
								url: '../image/image?uid=' + uid // 跳转到目标页面,并携带 UID 参数
							});
						} else {
							console.log('quxiao');
						}
					}
				});
			}

推荐一个项目

工学云打卡习讯云打卡自动化打卡体验地址:https://liangzhizhangyu.com

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com