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

nfc功能怎么实现(6招学会调用NFC的各个功能)(1)

首先,注册并登录中控易动—提供APP一站式SaaS服务,点击右上方"控制台"-"应用项目"或"免费试用",创建完成进入应用,然后添加NFC插件。

1.NDEF注册

为任何NDEF标签注册一个事件监听器

nfc.addNdefListener(callback, onSuccess, onFailure)

支持平台:

  • Android
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(2)

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
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(3)

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
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(4)

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"

4.侦听器删除

删除通过nfc.addTagDiscoveredListener添加的以前注册的事件侦听器

nfc.removeTagDiscoveredListener(callback, onSuccess, onFailure)

支持平台:

  • Android
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(5)

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"

5.NFC设置

在设备上显示NFC设置

nfc.showSettings(success,failure)

支持平台:

  • Android
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(6)

success函数返回一个字符串OK;

failure函数返回一个字符串错误信息

示例代码

// 监听’deviceready‘事件 document.addEventListener('deviceready', onDeviceReady, false) function onDeviceReady(){ nfc.showSettings(function(success){ alert(success); },function(failure){ alert(failure); }); }

响应示例代码:

"OK"

6.将NDEF消息写入NFC标签

注意

  • 在Android上,必须从NDEF事件处理程序中调用此方法。在iOS上,应在NDEF事件处理程序外部调用此方法,它将启动新的扫描会话。

NDEF消息是一个或多个NDEF记录的数组

nfc.write(ndefMessage,success,failure)

支持平台:

  • Android
参数说明

nfc功能怎么实现(6招学会调用NFC的各个功能)(7)

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

    分享
    投诉
    首页