nfc

readingAvailable removeEventListener writeText startSession

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

nfc 模块概述

nfc模块封装在安卓下对NFC下的NDEF文本数据读写和iOS下对NFC下的NDEF文本数据读取,(备注:iOS系统支持11以上,iphone7以上的机型)

iOS模式下配置相关

1、进入开发者中心设置AppID支持NFC Tag Reading,并且设置项目的Bundle Identifier跟新设置的AppID同步.

2、创建 entitlements文件

APICloud 平台上的开发者,可通过 告诉编译服务器开通苹果NFC读取功能。配置方法参考论坛帖子。配置示例如下:

3、在云编译处需要勾选”NFC读取”权限。

描述

4、常见错误码。

5、format代码含义。

6、type代码含义。

Android模式下

常见错误码。

固件要求

Android:4.0及以上 iOS:11.0及以上

readingAvailable

判断设备是否支持NFC(iOS请在初始化之前进行验证)

readingAvailable(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. status: true, //布尔型;true||false
  2. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg : 'Your system version is too low'
  3. }

示例代码

  1. var demo = api.require('nfc');
  2. demo.readingAvailable(function(ret, err){
  3. alert(JSON.stringify(ret) + " " +JSON.stringify(err));
  4. });

可用性

iOS、Android系统

addEventListener

识别结果监听(Android模式设置此参数可以达到整个App内拦截,不会弹出手机类其他应用)

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. result : '', //标签内容 (Android是此字符串格式)
  4. tagId : '1233123' //标签ID
  5. evenType : 'Cancel',//用户取消识别:Cancel (iOS有值)
  6. //错误:Error
  7. //识别完成:Ok
  8. code : 202,//(见iOS常见错误码。)
  9. result:{//标签内容 (iOS是此JSON格式)
  10. format : '',//载体的类型名称格式,由NDEF规范定义
  11. identifier : '',//标识,由NDEF规范定义
  12. type : '',//载体的类型,由NDEF规范定义
  13. payload : ''//载体中的未解析数据,由NDEF规范定义
  14. encoding : '',//isParseContent为true返回 type = T 有效
  15. language : '',//isParseContent为true返回type = T 有效
  16. payloadArr : '',//isParseContent为true返回
  17. data : '',//解析结果
  18. olddata : '',//isParseContent为true返回
  19. }
  20. }

示例代码

  1. var demo = api.require('nfc');
  2. demo.addEventListener(function(ret, err){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS、Android系统

可提供的1.0.2及更高版本

removeEventListener

移除NFC数据监听

removeEventListener()

示例代码

  1. var demo = api.require('nfc');
  2. demo.removeEventListener();

iOS、Android系统

可提供的1.0.0及更高版本

initPageConfig

配置读写标签界面UI元素(不执行本接口则选用模块默认UI布局方案)

initPageConfig({params}, callback(ret,err))

params

isDebug:

  • 类型:布尔型
  • 描述:开启调试模式时,不支持nfc的手机可以打开界面看UI效果。
  • 默认值:false(不开启)

backgroundColor:

  • 类型:字符串
  • 描述:页面背景色
  • 默认值:#f5f5f5

title:

  • 类型:JSON 对象
  • 描述:顶部标题样式配置
  • 默认值:见内部字段
  • 内部字段:

center:

  • 类型:JSON 对象
  • 描述:页面中间提示内容样式配置
  • 默认值:见内部字段
  • 内部字段:

    1. {
    2. text : '122221', //文字说明 默认值:请将NFC标签或者贴纸靠近手机背面
    3. color : '#00EE00', //文字说明字体颜色 默认值:#000000
    4. }

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode: 1 ,
  3. errorMessage : '您的设备不支持NFC'
  4. }
  5. ##示例代码
  6. ```js
  7. var demo = api.require('nfc');
  8. demo.initPageConfig({
  9. isDebug : true, //开启时,不支持nfc的手机可以打开界面看UI效果
  10. backgroundColor : '#FF4040', //页面背景色
  11. title : {
  12. text : '请读卡1', //标题
  13. color : '#000000', //标题字体颜色
  14. background : '#551A8B', //标题栏背景色
  15. layoutHeight : 45 //标题栏高度
  16. },
  17. center : {
  18. logo : 'widget://res/nfc_read.png', //图片logo文件路径
  19. text : '请将NFC标签或者贴纸靠近手机背面11', //文字说明
  20. color : '#00EE00', //文字说明字体颜色
  21. }
  22. },function(ret){
  23. alert(JSON.stringify(ret));
  24. });

可用性

Android系统

可提供的1.0.0及更高版本

writeText

写NFC标签文本数据

writeText({params}, callback(ret, err))

params

  • 类型:字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. result : '写入成功' //仅status: true 有值
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorMessage : '取消NFC操作'
  3. }

示例代码

  1. var demo = api.require('nfc');
  2. demo.writeText({
  3. data : '我是测试数据12345678fffgs'
  4. },function(ret, err){
  5. alert(JSON.stringify(ret) + " " +JSON.stringify(err));
  6. });

可用性

Android系统

可提供的1.0.0及更高版本

readText

读NFC标签文本数据

readText(callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. errorCode: 3 ,
  3. errorMessage : '取消NFC操作'
  4. }

示例代码

  1. var demo = api.require('nfc');
  2. demo.readText(function(ret, err){
  3. alert(JSON.stringify(ret) + " " +JSON.stringify(err));
  4. });

可用性

Android系统

可提供的1.0.0及更高版本

startSession

开始扫描

startSession({params}, callback(ret, err))

params

alertMessage:

  • 类型:字符串
  • 描述:(可选项)识别时提示信息内容。

isOnlyFirst:

  • 类型:布尔型
  • 描述:(可选项)是否仅解析一次 (单次:true 多次:false)[设置为true时,请参考监听返回错误代码204对逻辑进行处理]。
  • 默认值:true

isParseContent:

  • 类型:布尔型
  • 描述:(可选项)是否自动解析结果 (解析:true 不解析:false)。
  • 默认值:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg : 'Your system version is too low'
  3. }

示例代码

  1. var demo = api.require('nfc');
  2. demo.startSession({
  3. alertMessage : '你为什么要nfc识别?',
  4. isOnlyFirst : true,
  5. isParseContent : true
  6. },function(ret, err){
  7. alert(JSON.stringify(ret)+" "+JSON.stringify(err));
  8. });

可用性

iOS系统

可提供的1.0.3及更高版本

endSession

结束扫描

endSession(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. var demo = api.require('nfc');
  2. demo.endSession(function(ret, err){
  3. alert(JSON.stringify(ret) + " " +JSON.stringify(err));

可用性

可提供的1.0.3及更高版本