现在越来越多的手机支持NFC功能,这种轻松、安全、迅速的通信的无线连接技术,能够让我们的手机替代门禁卡、公交卡、银行卡甚至是车钥匙,那么怎么让APP中能够调用这个功能呢?今天小编就来教给大家!
注意:
- 插件的所有接口在 deviceready 事件后生效;
- 目前,苹果的CoreNFC对NFC的格式支持有限,暂时仅支持NDEF格式
- 1.NFC最低支持硬件iPhone7或者iPhone7Plus,最低支持系统为iOS11
- 2.需要开启一个session,与其他session类似,同时只能开启一个
- 3.需要App完全在前台模式,iPhoneX之后机型,支持后台读取
- 4.每个session最多扫描60s,超时需再次开启新session
- 5.配置读取单个或多个Tag,配置为单个时,会在读取到第一个Tag时自动结束session
首先,注册并登录,点击右上方"控制台"-"应用项目"或"免费试用",创建完成进入应用,然后添加NFC插件。
1.NDEF注册为任何NDEF标签注册一个事件监听器
nfc.addNdefListener(callback, onSuccess, onFailure)
支持平台:
- Android
onSuccess函数没有返回
onFailure函数会返回一个字符串,表示错误信息
示例代码// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
nfc.addNdefListener(
function(nfcEvent){
var tag = nfcEvent.tag;
alert(JSON.stringify(nfcEvent.tag));
alert(nfc.bytesToHexString(tag.id));
},
function(onSuccess) {
alert(onSuccess);
},
function(error) {
alert(error);
}
);
}
2.NDEF删除
移除通过nfc.addNdefListener添加的NDEF标签的以前注册的事件侦听器
nfc.removeNdefListener(callback, onSuccess, onFailure)
支持平台:
- Android
onSuccess函数没有返回
onFailure函数没有返回
示例代码// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
nfc.removeNdefListener(
function(nfcEvent){
var tag = nfcEvent.tag;
alert(JSON.stringify(nfcEvent.tag));
},
function(onSuccess) {
alert(onSuccess);
},
function(onFailure) {
alert(onFailure);
}
);
}
响应示例代码callback的返回数据:
{
"type":"NDEF Push Protocol",
"maxSize":"1",
"ndefMessage":[
{
"tnf":1,
"type":[
1,
2
],
"id":[
1,
3,
1
],
"payload":[
]
}
]
}
3.侦听器注册
注意
- 在Android上,addTagDiscoveredListener扫描非NDEF标签和NDEF标签。即使标签上有NDEF消息,标签事件也不包含ndefMessage。使用addNdefListener或addMimeTypeListener获取NDEF信息;
为匹配任何标签类型的标签注册事件侦听器
nfc.addTagDiscoveredListener(callback,onSuccess, onFailure)
支持平台:
- Android