nfc功能怎么实现(6招学会调用NFC的各个功能)
现在越来越多的手机支持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
首先,注册并登录中控易动—提供APP一站式SaaS服务,点击右上方"控制台"-"应用项目"或"免费试用",创建完成进入应用,然后添加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);
}
);
}
移除通过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":[
]
}
]
}
注意
- 在Android上,addTagDiscoveredListener扫描非NDEF标签和NDEF标签。即使标签上有NDEF消息,标签事件也不包含ndefMessage。使用addNdefListener或addMimeTypeListener获取NDEF信息;
为匹配任何标签类型的标签注册事件侦听器
nfc.addTagDiscoveredListener(callback,onSuccess, onFailure)
支持平台:
- Android
onSuccess函数返回一个字符串OK;
onFailure函数返回一个字符串,表示错误信息
示例代码
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
nfc.addTagDiscoveredListener(
function(nfcEvent){
var tag = nfcEvent.tag;
alert(JSON.stringify(nfcEvent.tag));
alert(nfc.bytesToHexString(tag.id));
},
function(onSuccess) {
alert(onSuccess);
},
function(onFailure) {
alert(onFailure);
}
);
}
响应示例代码:
"OK"
删除通过nfc.addTagDiscoveredListener添加的以前注册的事件侦听器
nfc.removeTagDiscoveredListener(callback, onSuccess, onFailure)
支持平台:
- Android
onSuccess函数返回一个字符串OK;
onFailure函数返回一个字符串,表示错误信息
示例代码
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
function callback(nfcEvent){
var tag = nfcEvent.tag;
alert(JSON.stringify(nfcEvent.tag));
alert(nfc.bytesToHexString(tag.id));
}
nfc.removeTagDiscoveredListener(
callback,
function(onSuccess) {
alert(JSON.stringify(onSuccess));
},
function(error) {
alert(error);
});
}
响应示例代码:
"OK"
在设备上显示NFC设置
nfc.showSettings(success,failure)
支持平台:
- Android
success函数返回一个字符串OK;
failure函数返回一个字符串错误信息
示例代码
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
nfc.showSettings(function(success){
alert(success);
},function(failure){
alert(failure);
});
}
响应示例代码:
"OK"
注意
- 在Android上,必须从NDEF事件处理程序中调用此方法。在iOS上,应在NDEF事件处理程序外部调用此方法,它将启动新的扫描会话。
NDEF消息是一个或多个NDEF记录的数组
nfc.write(ndefMessage,success,failure)
支持平台:
- Android
success函数返回一个字符串OK;
failure函数返回一个字符串错误信息
示例代码
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
var message = [
ndef.textRecord("hello, world"),
ndef.uriRecord("http://github.com/chariotsolutions/phonegap-nfc")
];
nfc.write(message,function(success){
alert(success);
},function(failure){
alert(failure);
});
}
响应示例代码:
"OK"
点击中控易动—提供APP一站式SaaS服务马上试试吧
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com