【发布时间】:2014-11-07 17:04:00
【问题描述】:
我按照 phonegap-nfc 项目页面上的说明为我的 phonegap 项目安装了 nfc 插件。
在启动应用程序时,我确实看到了Waiting for NDEF tag 警报。但是,在将 NFC 卡轻触手机时,我只听到失败的 NFC 声音(您可以在 this video 中听到该声音)。我不确定这里有什么问题。
代码与上面第一个链接中的说明完全相同。为简洁起见,我也将代码复制到这里:
我的 index.js 有 -
onDeviceReady: function() {
app.receivedEvent('deviceready');
// Read NDEF formatted NFC Tags
nfc.addNdefListener (
function (nfcEvent) {
var tag = nfcEvent.tag,
ndefMessage = tag.ndefMessage;
// dump the raw json of the message
// note: real code will need to decode
// the payload from each record
alert(JSON.stringify(ndefMessage));
// assuming the first record in the message has
// a payload that can be converted to a string.
alert(nfc.bytesToString(ndefMessage[0].payload).substring(3));
},
function () { // success callback
alert("Waiting for NDEF tag");
},
function (error) { // error callback
alert("Error adding NDEF listener " + JSON.stringify(error));
}
);
},
【问题讨论】:
-
您确定您的 NFC 卡实际上是 NDEF 标签,而不是任何其他类型的 NFC 卡吗?
-
@QuickFix 我会试试看,但 NFC 插件不应该支持任何类型的 NFC 标签吗?
-
NDEF 监听器仅支持 NDEF 标签。有一个用于其他类型标签的 nfc.addTagDiscoveredListener 函数,但它只允许检索标签 ID。对于更复杂的操作,我必须从原始插件构建自己的插件。
-
@QuickFix 谢谢。我在日志中注意到了这一点: dispatch tag: TAG: Tech [android.nfc.tech.NfcA, android.nfc.tech.MifareUltralight, android.nfc.tech.NdefFormatable] message: null
-
@QuickFix 好吧,我开始监听 addTagDiscoveredListener,并获得了标签 ID(这是我一开始想要的)。非常感谢。
标签: javascript android cordova phonegap-plugins nfc