言归正传,直接上干货
逻辑流程
- 获取NFC 实例
- 注册监听贴卡
- 注册监听贴卡回调
- 获取卡片实例(不同类型卡片API不一样,具体看文档)
- 连接NFC
- 发送数据
- 断开连接
- 关闭监听贴卡注册
- 关闭监听贴卡回调
如果只是读卡,可以忽略掉5,6,7三个步骤。
具体用到到的API
getNFCAdapter获取NFC 实例=NFCAdapter
NFCAdapter.startDiscovery 注册监听贴卡
NFCAdapter. onDiscovered 注册监听贴卡回调
NFCAdapter.stopDiscovery 关闭监听贴卡 —-3
NFCAdapter.offDiscovered 关闭监听回调—-2
NFCAdapter.getNdef() 获取(ndef)实例
Ndef.connect(OBJECT) 连接nfc标签
Ndef.close(OBJECT) 断开连接——1
Ndef.writeNdefMessage 发送数据
代码示例
// 创建nfc实例
let nfcAdapter = wx.getNFCAdapter();
// 注册监听贴卡
nfcAdapter.startDiscovery({
success: (ress) => {
// 成功
},
fail: (error) => {
// 失败
},
});
// 注册监听贴卡回调(关键)
// 使用变量,(保存注册监听器,否则无法关闭!!!)
this.nfcListener = function (res) {};
nfcAdapter.onDiscovered(this.fcListener);
// 获取响应实例(重点)
// 我这里以获取ndef格式为例子,使用getNdef()
const NFCTab = nfcAdapter.getNdef();
// 连接到NFC
NFCTab.connect({
success: (ress) => {
// 成功
},
fail: (error) => {
// 失败
},
});
// 发送数据
NFCTab.writeNdefMessage({
texts: [{ text: that.infoData.id, language: “en” }],
success: (ress) => {
// 成功
},
fail: (error) => {
// 失败
},
});
// 断开连接
NFCTab.close({});
// 关闭监听贴卡注册
nfcAdapter.stopDiscovery();
// 关闭监听贴卡回调
nfcAdapter.offDiscovered(this.nfcListener);
完整代码
吐槽官方
破nfc,文档太省略了,完全不考虑开发者

您好,请问为什么我打印NFCtab没有writemessage这个方法呢