【问题标题】:Phonegap NFC not workingPhonegap NFC 不工作
【发布时间】: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


【解决方案1】:

该插件只允许写入/读取 NDEF 标签,因为这种操作非常简单。

NFC 卡可能要复杂得多,并且需要根据卡的类型遵循特定的结构和加密。有时需要向卡发送命令并等待遵循复杂协议的响应。

如果您是 Mifare 经典卡,您必须知道密钥才能读取数据。

由于这些原因,通用插件无法读取任何类型的 NFC 卡。

chariotsolutions 插件允许完全访问 NDEF 标签,但只允许您获取其他卡的标签 ID(在这种情况下,请改用 nfc.addTagDiscoveredListener)

要执行更具体的操作,可以从这个开始制作自己的插件。

要查看你有什么类型的卡,你可以使用This app

您也可以查看the Google page about NFC 以获取更多参考,或查看this interesting doc from Motorola

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多