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 对象
- 内部字段:
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg : 'Your system version is too low'
}
示例代码
var demo = api.require('nfc');
demo.readingAvailable(function(ret, err){
alert(JSON.stringify(ret) + " " +JSON.stringify(err));
});
可用性
iOS、Android系统
addEventListener
识别结果监听(Android模式设置此参数可以达到整个App内拦截,不会弹出手机类其他应用)
addEventListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
result : '', //标签内容 (Android是此字符串格式)
tagId : '1233123' //标签ID
evenType : 'Cancel',//用户取消识别:Cancel (iOS有值)
//错误:Error
//识别完成:Ok
code : 202,//(见iOS常见错误码。)
result:{//标签内容 (iOS是此JSON格式)
format : '',//载体的类型名称格式,由NDEF规范定义
identifier : '',//标识,由NDEF规范定义
type : '',//载体的类型,由NDEF规范定义
payload : ''//载体中的未解析数据,由NDEF规范定义
encoding : '',//isParseContent为true返回 type = T 有效
language : '',//isParseContent为true返回type = T 有效
payloadArr : '',//isParseContent为true返回
data : '',//解析结果
olddata : '',//isParseContent为true返回
}
}
示例代码
var demo = api.require('nfc');
demo.addEventListener(function(ret, err){
alert(JSON.stringify(ret));
});
可用性
iOS、Android系统
可提供的1.0.2及更高版本
removeEventListener
移除NFC数据监听
removeEventListener()
示例代码
var demo = api.require('nfc');
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 对象
- 描述:页面中间提示内容样式配置
- 默认值:见内部字段
内部字段:
{
text : '122221', //文字说明 默认值:请将NFC标签或者贴纸靠近手机背面
color : '#00EE00', //文字说明字体颜色 默认值:#000000
}
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
errorCode: 1 ,
errorMessage : '您的设备不支持NFC'
}
##示例代码
```js
var demo = api.require('nfc');
demo.initPageConfig({
isDebug : true, //开启时,不支持nfc的手机可以打开界面看UI效果
backgroundColor : '#FF4040', //页面背景色
title : {
text : '请读卡1', //标题
color : '#000000', //标题字体颜色
background : '#551A8B', //标题栏背景色
layoutHeight : 45 //标题栏高度
},
center : {
logo : 'widget://res/nfc_read.png', //图片logo文件路径
text : '请将NFC标签或者贴纸靠近手机背面11', //文字说明
color : '#00EE00', //文字说明字体颜色
}
},function(ret){
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
writeText
写NFC标签文本数据
writeText({params}, callback(ret, err))
params
- 类型:字符串
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
result : '写入成功' //仅status: true 有值
}
err:
- 类型:JSON 对象
- 内部字段:
{
errorMessage : '取消NFC操作'
}
示例代码
var demo = api.require('nfc');
demo.writeText({
data : '我是测试数据12345678fffgs'
},function(ret, err){
alert(JSON.stringify(ret) + " " +JSON.stringify(err));
});
可用性
Android系统
可提供的1.0.0及更高版本
readText
读NFC标签文本数据
readText(callback(ret, err))
ret:
- 类型:JSON 对象
- 内部字段:
err:
- 类型:JSON 对象
- 内部字段:
{
errorCode: 3 ,
errorMessage : '取消NFC操作'
}
示例代码
var demo = api.require('nfc');
demo.readText(function(ret, err){
alert(JSON.stringify(ret) + " " +JSON.stringify(err));
});
可用性
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 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg : 'Your system version is too low'
}
示例代码
var demo = api.require('nfc');
demo.startSession({
alertMessage : '你为什么要nfc识别?',
isOnlyFirst : true,
isParseContent : true
},function(ret, err){
alert(JSON.stringify(ret)+" "+JSON.stringify(err));
});
可用性
iOS系统
可提供的1.0.3及更高版本
endSession
结束扫描
endSession(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
var demo = api.require('nfc');
demo.endSession(function(ret, err){
alert(JSON.stringify(ret) + " " +JSON.stringify(err));
可用性
可提供的1.0.3及更高版本