评论

NFC功能,连接到读写,整个流程成功案例,NFCAdapter.onDiscovered,offDiscovered

微信使用nfc

言归正传,直接上干货
逻辑流程

  1. 获取NFC 实例
  2. 注册监听贴卡
  3. 注册监听贴卡回调
  4. 获取卡片实例(不同类型卡片API不一样,具体看文档)
  5. 连接NFC
  6. 发送数据
  7. 断开连接
  8. 关闭监听贴卡注册
  9. 关闭监听贴卡回调
    如果只是读卡,可以忽略掉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,文档太省略了,完全不考虑开发者

最后一次编辑于  09-22  
点赞 2
收藏
评论

1 个评论

  • summer
    summer
    11-26

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

    11-26
    赞同
    回复
登录 后发表内容