收藏
回答

关于卡模拟接口onHCEMessage始终触发不了的问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug onHCEMessage 客户端 6.7.3 2.4.3

一、这是我用TagInfo读出的门禁卡信息,信息上说明支持ISO 14443-3协议


二、微信官方文档:HCE卡模拟能力

n支持的卡协议

ISO 14443、ISO7816

三、如上2点应该能说明我的门禁卡协议与微信HCE支持的协议是兼容的,但当与门禁锁对接时wx.onHCEMessage却怎么也触发不了,如下是简单的测试代码(官方文档提供的):

    const buffer = new ArrayBuffer(1)

    const dataView = new DataView(buffer)

    dataView.setUint8(0, 0)

    wx.startHCE({

      aid_list: ['F222222222'],

      success(res) {

        console.log('starthce success.', res);  //这个能正常输出,说明手机是支持NFC且已打开配置

        wx.onHCEMessage(function (res) {

          console.log('onHCEMessage.', res);    // 这里却怎么也触发不了

          if (res.messageType === 1) {

            wx.sendHCEMessage({ data: buffer })

          }

        })

      }

    })

四、与多家出租屋的大门锁都对触了下,也没反应,难道大家的门禁锁都不支持ISO14443、ISO7816协议?

真不知道问题出在哪里,想在小程序中做个模拟门禁卡的功能,卡在这儿了。

最后一次编辑于  2018-12-29
回答关注问题邀请回答
收藏

3 个回答

  • 小程序技术专员-Eric
    小程序技术专员-Eric
    2018-12-29

    aid_list要填写正确

    2018-12-29
    赞同
    回复 2
    • gzlj
      gzlj
      2018-12-29

      我也觉得这个值有疑问,但不知道如何填。

      我偿试过我的门禁卡编号(9位的),以F+9位门禁卡号作为AID号,报”注册AID错误”。

      直接用9位的门禁号作为AID号,未报注册错误,但还是没有触发onHCEMessage方法。

      2018-12-29
      回复
    • Амин
      Амин
      09-19回复gzlj
      5.0以下系统的话没问题,大于5.0就报错
      09-19
      回复
  • Амин
    Амин
    09-19

    问题解决了吗

    09-19
    赞同
    回复
  • gzlj
    gzlj
    2018-12-29

    AID确实很重要,现在的问题应该回到如何获取读卡器(在这儿是门禁锁)的AID,有哪位大佬做过类似功能的,提供下线索。

    2018-12-29
    赞同
    回复