读取
获取NFC适配器实例
let adapter = wx.getNFCAdapter()
开始监听贴卡
adapter.startDiscovery()
贴卡监听回调
adapter.onDiscovered(res => {
console.log(res, '读取到了')
})
注销NFC适配器实例
// 取消监听 NFC Tag
adapter.offDiscovered(() => {})
// 停止监听贴卡
adapter.stopDiscovery()
// 重置 NFC 实例
adapter = null
写入
获取NFC适配器实例
let adapter = wx.getNFCAdapter()
开始监听贴卡
adapter.startDiscovery()
贴卡监听回调
adapter.onDiscovered(res => {
console.log(res, '读取到了')
let { techs } = res
// techs用于匹配 NFC卡片具体可以使用什么标准(NfcA等实例)处理
})
以 Ndef 为例
获取 Ndef实例
let NFCTab = adapter.getNdef()
连接 NFC 标签
NFCTab.connect({
success: () => {
wx.showToast({
title: '连接设备成功'
})
},
fail: error => {
wx.showToast({
title: '连接设备失败',
icon: 'error'
})
// 注销NFC适配器实例
// 取消监听 NFC Tag
adapter.offDiscovered(() => {})
// 停止监听贴卡
adapter.stopDiscovery()
// 重置 NFC 实例
adapter = null
}
})
重写 Ndef 标签内容
以写入uri为例,其它类型可查询官方文档
NFCTab.writeNdefMessage({
uris: ['https://www.baidu.com'],
success: () => {
console.log('数据写入成功')
},
fail: () => {
console.log('数据写入失败')
},
complete: res => {
// 读写完毕,断开连接
NFCTab.close({
complete: res => {
console.log('清除标签连接:res', res)
// 注销NFC适配器实例
// 取消监听 NFC Tag
adapter.offDiscovered(() => {})
// 停止监听贴卡
adapter.stopDiscovery()
// 重置 NFC 实例
adapter = null
}
})
}
})