Недавно я участвовал в Кубке вызова и столкнулся с необходимостью небольшой программы для идентификации NFC при разработке проекта после прочтения официальных документов.
Наконец, была реализована идентификация чипов NFC.
Код реализации следующий:
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');
}
}
});
}
Порекомендовать проект
Регистрация в облаке Gongxue Регистрация в облаке Xixun Автоматическая регистрация Адрес: https://liangzhizhangyu.com