阿拉丁小教程|门禁卡、公交卡弄丢了怎么破?【技术贴】

栏目:#阿拉丁小教程#

#阿拉丁小教程#是由阿拉丁团队独家创办的纯技术应用及学术交流专栏。该栏目将与各位程序员交流小程序开发中会遇到的各类不同纬度的重要技术问题。我们的目标是,更加快捷、简单,包教包会。这是今年阿拉丁对程序员们致敬和关怀的系列之作。希望大家作为常态关注!感谢大家。

本期为第7期:小程序NFC功能的实现


每日出行、上班下班,公交卡已经成为很多人外出的必备物品,门禁卡也是各位“加班狗”的出入密器,但总有那么一两次意外,公交卡丢了怎么办?不能坐地铁吗?没有门禁卡进不了公司怎么办?如果把这些卡转移到我们随身携带的手机上呢?今天的小教程,灯妹儿请来技术小哥哥给大家介绍小程序里的NFC功能,各种卡集中到手机里,不用担心丢失~


NFC功能在2017年12月28日发布,小程序正式支持HCE模式的NFC功能了,一个手机就能搞定各种卡,当然,需要先检查一下自己的手机是否支持NFC功能:打开手机,选择更多连接,如果手机有NFC功能,打开开关即可使用。


首先简单了解HCE模式:“HOST card emulation” 简称HCE, 这个述语用来描述一种软件架构。这种架构为NFC设备与远程主机之间的通讯创造了一个安全的支付环境。利用HCE技术,用户的手机就可以替代他们的支付卡,交通卡,门禁以及通行证这些传统的卡片。


2-3.png


再来介绍一下NFC功能吧:简单地说,就是将具有NFC功能的安卓手机模拟成实体智能卡。这比刷码乘车还要方便,不是先保存乘车码,使用的时候再在微信中调出乘车码,而是让手机直接化身公交卡、门禁卡等智能卡。用户打开小程序并贴近刷卡机,就能完成卡的识别、消费等操作了。


搜索过程如下:

打开微信搜索小程序,输入NFC会看见下图:


2-4.png


关于NFC功能,有很多的小程序,主要使用的就是名列第一的NFC智能卡,打开之后会有以下选择,然后就可以根据自己的需要配置自己的万能卡啦,从此公交、地铁、门禁等带手机即可使用。还可以添加其余的智能卡呦,只要你的手机具有NFC功能,那就赶快尝试一下吧!

2-5.png

配置完成后,下次使用各种卡的时候打开小程序就可以啦~以下图片上是支持NFC功能的手机型号,有遗漏之处欢迎大家补充~


2-6.png

2-7.png

2-8.png

2-9.png


那么,这一小程序的接口是如何实现的呢?


1.调用wx.getHCEState(OBJECT)来判断手机是否支持NFC功能

2.调用wx.startHCE(OBJECT)初始化NFC模块

3.调用wx.stopHCE(OBJECT)关闭 NFC 模块。仅在安卓系统下有效。

4.调用wx.onHCEMessage(CALLBACK)监听 NFC 设备的消息回调,并在回调中处理。返回参数中 messageType 表示消息类型,目前有如下值:

1)消息为HCE Apdu Command类型,小程序需对此指令进行处理,并调用 sendHCEMessage 接口返回处理指令;

2)消息为设备离场事件

调用wx.sendHCEMessage(OBJECT)发送 NFC 消息。仅在安卓系统下有效。


调用上述接口返回错误码,错误码的含义如下:

2-10.png

对今天的内容有疑问或者有补充的各位欢迎跟我们交流哦,灯妹儿表示现在很想拥有一个具备NFC功能的手机,公交卡、门禁卡什么的,再也不担心会丢了~