一、在微信小程序中,使用nfcIsoDep.transceive发送指令的基本步骤如下:
- 使用wx.getNFCAdapter获取NFC适配器实例。
- 调用NFCAdapter.startDiscovery开始监听贴卡。
- 注册贴卡监听回调,调用NFCAdapter.onDiscovered。
- 在回调函数中,根据返回的res.techs字段匹配到卡片支持的NFC标准。
- 使用NFCAdapter.getIsoDep()获取IsoDep实例。
- 调用IsoDep.connect()与NFC卡片建立连接。
- 调用IsoDep.transceive()向NFC卡片发送指令并接收返回的数据。这个函数接受一个对象作为参数,该对象包含一个ArrayBuffer类型的属性,表示需要传递的二进制数据1。
- 读写完毕后,调用IsoDep.close()断开与NFC卡片的连接。
- 最后,调用NFCAdapter.stopDiscovery()结束监听贴卡
二、在微信小程序中,使用nfcIsoDep.transceive发送数据后返回undefined,可能有以下几种原因:
- NFC卡片未连接:在调用nfcIsoDep.transceive之前,需要先调用nfcIsoDep.connect()与NFC卡片建立连接1。如果没有正确连接到NFC卡片,那么nfcIsoDep.transceive可能会返回undefined
- 发送的数据不正确:nfcIsoDep.transceive函数接受一个对象作为参数,该对象包含一个ArrayBuffer类型的属性,表示需要传递的二进制数据1。如果传递的数据不是ArrayBuffer类型,或者数据格式不正确,那么可能会导致返回undefined
- 卡片不支持发送的指令:不是所有的NFC卡片都支持所有的指令。如果你发送了卡片不支持的指令,那么可能会导致返回undefined
- 其他未知错误:除了以上几点,还可能存在其他未知的错误导致返回undefined。