NFC接口

描述

网页通过 url 调用手机的 NFC 功能读写标签。 注意:该功能拟支持 7.0.0 以上的版本,iPhone 只支持 iPhone 7 以上且系统是 iOS 11 以上的机器,读 NDEF 格式的数据,不支持写。

调用方式

调用格式:  http://CMBLS/NFC?id=XXX&action=XXX&message=XXX


友情提示:  为适配NFC需要连续多次不断开连接的读写指令,需要转到特定的activity进行处理,因此需要先调用cmbls跳转 :


http://cmbls/FunctionJumpid=123&action=goappfunc&appfuncname=NFC&config=%3CConfig%3E%3CSrc%3E

http%3A%2F%2Fxp.ycb51.cn%3C%2FSrc%3E%3C%2FConfig%3E


其中,config(需要urlencode)具体内容格式为:

<Config>

<Src>url</Src> //url为需要打开页面的链接

</Config>



参数

读写各类卡如公交卡 //7.0及以上版本支持 目前支持IsoDep、MifareClassic

参数必选
说明
id
命令对应的id
action
有三种取值,query、 writecard和readcard,分别表示查询NFC的状态(当前设备是否支持NFC以及开关是否打开)、向 NFC标签中写入数据读取数据等、读取公交卡、银行卡等。
message
要写入的APDU指令,需UrlEncode

备注:

message格式:如 {“HexData”: [“4105312e5748435443”, “00A40000021001”, “0020000003123456”, “805C000204”]}    //“4105312e5748435443”为hexString

通用(仅支持NDEF格式)

参数名必选说明
id命令对应的 id
action有三种取值,query、read , write,分别表示查询NFC的状态(当前设备是否支持NFC以及开关是否打开)、读取 NFC 标签信息、向 NFC标签中写入数据。
message要写入的信息,当 action 为 write 时需要该参数 ,需UrlEncode


返回调用接口

成功的回调

 (1) 读写各类卡如公交卡返回

  1. CMBLS.NFC.successCallBack(id,result)

  2. action query 时:

  3. <result>

  4. <stateCode>0</stateCode>

  5. <action>query</action>

  6. <description>当前设备的 NFC 可用</description>

  7. </result>

  8. action readcard 时:

  9. <result>

  10. <stateCode>0</stateCode>

  11. <description>读取NFC信息成功</description>

  12. <action>readcard</action>

  13. <tagId>tagid</tagId> //

  14. <NFCDataType>XXXXNFC标签的数据类型)</NFCDataType>

  15. <detailMessage>XXXX(读取NFC的具体信息,进行URLENCODE)<detailMessage>

  16.    detailMessage里面数据格式为:[xxx,xxx,...,xxx]//xxx为hexString,xxx已进行base64处理

  17. </result>

  18. action writecard 时:

  19. <result>

  20. <stateCode>0</stateCode>

  21. <description>读取NFC信息成功</description>

  22. <action>writecard</action>

  23. <tagId>tagid</tagId>

  24. <NFCDataType>XXXXNFC标签的数据类型)</NFCDataType>

  25. <detailMessage>XXXX(写入数据NFC的具体信息,进行URLENCODE)<detailMessage>

  26.    detailMessage里面数据格式为:[xxx,xxx,...,xxx]//xxx为hexString,xxx已进行base64处理

  27. </result>

 (2)普通NDEF格式返回

  1. action read 时:

  2. <result>

  3. <stateCode>0</stateCode>

  4. <description>读取NFC信息成功</description>

  5. <action>read</action>

  6. <tagId>tagid</tagId>

  7. <NFCDataType>XXXXNFC标签的数据类型)</NFCDataType>

  8. <detailMessage>XXXX(读取NFC的具体信息,数据进行URLENCODE)<detailMessage>

  9. </result>

  10. action write 时:

  11. <result>

  12. <stateCode>0</stateCode>

  13. <action>write</action>

  14. <tagId>tagid</tagId>

  15. <description>成功向 NFC 中写入数据</description>

  16. <detailMessage>xxx</detailMessage>

  17. </result>

返回参数说明

参数说明
stateCode状态码,为0
description描述信息
NFCDataTypeNFC标签的数据类型(NDEF表示NDEF格式,TECH表示技术型格式,TAG表示未知或不支持的格式),iPhone 只支持读NDEF格式的数据
detailMessage读取NFC中的具体信息 ,需要UrlEncode后传给网页


失败的回调

  1. CMBLS.NFC.failCallBack(id,result)

  2. Result格式:

  3. <result>

  4. <stateCode>1</stateCode>

  5. <description>当前设备不支持NFC</description>

  6. </result>

  7. <result>

  8. <stateCode>2</stateCode>

  9. <description>当前设备的NFC开关未打开</description>

  10. </result>

  11. <result>

  12. <stateCode>3</stateCode>

  13. <description>当前设备不支持此标签的数据格式</description>

  14. </result>

  15. <result>

  16. <stateCode>4</stateCode>

  17. <description>NFC写入数据失败</description>

  18. </result>

  19. <result>

  20. <stateCode>5</stateCode>

  21. <description>读取标签数据失败</description>

  22. <NFCDataType>XXXXNFC标签的数据类型)</NFCDataType>

  23. </result>

  24. <result>

  25. <stateCode>6</stateCode>

  26. <description>用户取消</description>

  27. </result>

  28. <result>

  29. <stateCode>7</stateCode>

  30. <description>调用方式错误</description>

  31. </result>


返回参数说明

参数说明
stateCode状态码,为0
description

描述信息