【问题标题】:CORDOVA / phonegap NFC - reading and writing tagCORDOVA / phonegap NFC - 读写标签
【发布时间】:2020-11-16 12:46:41
【问题描述】:

我想用 Phonegap 读取 NFC 卡,但代码不起作用。 该代码正在读取公共交通卡或健身卡的 NFC 卡(并且运行良好),但它不读取银行卡。 当我尝试读取所有银行卡时,似乎 NFC 根本没有读取它。我得到一个带有文本的白屏:“标签为空或电话未对齐”。它接缝该应用程序无法识别银行卡。

 var app = {
    initialize: function() {
    this.bindEvents();
    },
    bindEvents: function() {
    document.addEventListener('deviceready', this.onDeviceReady, false);
    },
       onDeviceReady: function() {
            app.receivedEvent('deviceready');
            var success = function() {
                console.log("Listening for formatable NFC tags");
            };
            var failure = function(reason) {
                console.log("Error adding NFC listener " + reason);
            };
      
    
            nfc.addNdefFormatableListener(app.onNfc, success, failure);
        },
        onNfc: function(nfcEvent) {
          
          // display the tag as JSON
        alert(JSON.stringify(nfcEvent.tag));
    
            var success = function() {
                alert("Wrote data to tag");
            };
            var failure = function(reason) {
                alert("NFC write failed " + reason);
            };
    
            var message = [
                ndef.uriRecord("http://www.amazon.com/dp/1457187094")
            ];
    
            nfc.write(message, success, failure);
    
        },
      
      
    // Update DOM on a Received Event
    receivedEvent: function(id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');
    
        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');
    
        console.log('Received Event: ' + id);
    }
    };
    
    app.initialize();

【问题讨论】:

    标签: javascript cordova cordova-plugins nfc phonegap


    【解决方案1】:

    Ndef 只是 NFC 卡上使用的众多数据格式之一。

    银行卡不符合 Ndef 标准,而是符合另一个标准,因此,当您尝试从没有 Ndef 消息且无法存储 Ndef 消息的卡中读取 Ndef 消息时,它会说它是没有 Ndef 消息。

    【讨论】:

    • 我尝试了不同的,但仍然是同样的问题。会不会是别的东西?
    • 我会用您尝试过的任何其他卡的确切品牌和型号来更新问题。
    • 我尝试了几张银行卡,但它们都无法使用。其他有效的卡是公共交通卡和健身会员卡(用于进入健身房)。这两个完美地工作。我需要扫描银行卡从中读取信息,用户不需要自己在应用中写入信息。
    • 正如我所说的银行卡不符合 Ndef 标准,所以忘记尝试从银行卡读取该标准的数据。大多数银行卡符合低级别 NFC Type 4 标准,因此您应该从低级别读取 Type 4 卡,然后您需要了解并使用许多 AID(应用程序 ID)来读取银行卡。你应该问一个新的问题,针对你真正想做的事情。您永远无法向银行卡写信,所以也忘记了这一点。
    猜你喜欢
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多