2015-11-09 67 views
1

我正在使用phonegap-nfc插件來讀取我的科爾多瓦應用程序中的NFC標籤。我還在AndroidManifest.xml中包含了uses-permission標籤。 我的打字稿碼是:科爾多瓦NFC插件工作,但沒有引發任何事件

module myapp.nfcRead { 

export class NfcCtrl { 
    private status:string; 

    constructor(private $cordovaNfc:any, private $cordovaNfcUtil:any) { 
     this.status = "nfc"; 
    } 

    public readNFC() { 
     console.log("trying to find nfc"); 
     this.$cordovaNfc.then((nfcInstance:any) => { 
      nfcInstance.addNdefListener((nfcEvent:any) => { 
       this.status = "NFC Detected"; 
      }) 
       .then(
       //Success callback 
       (event:any) => { 
        this.status = "Reading NFC"; 
        console.log("Reading NFC"); 
       }, 
       //Fail callback 
       (err:any) => { 
        this.status = "error"; 
        console.log("error"); 
       }); 
     }); 
     this.$cordovaNfcUtil.then((nfcUtil:any) => { 
      this.status = nfcUtil.bytesToString("some bytes"); 
     }); 
    } 
} 

NfcCtrl.$inject = ['$cordovaNfc', '$cordovaNfcUtil']; 
angular.module('myapp.nfcRead', ['ngCordova.plugins.nfc']).controller('NfcCtrl', NfcCtrl);} 

如果我在瀏覽器中啓動應用程序,我調用方法「readNFC()」的狀態保持爲「NFC」。如果我在我的android手機上部署應用程序,並且我稱之爲「readNFC()」功能並且NFC被禁用,則狀態爲「錯誤」。激活NFC並再次調用該功能後,它會顯示「正在讀取NFC」。現在我想要讀取NFC標籤,但狀態不會改變。 (無事件引發)

我下載了一個應用程序從谷歌Play商店,看看標籤發現: (APP:NFC工具) NFC Tools output

你對我有什麼提示? 謝謝

+0

您是否找到解決方案?非常感謝 – Danilo

回答

0

您的代碼使用的是nfc.addNdefListener,它只能找到包含NDEF消息的標籤。

screenshot from NFC Tools說你的標籤是NDEF Formatable,所以我不認爲它包含一個NDEF消息。

您可以更改您的代碼以使用nfc.addTagDiscoveredListenernfc.addNdefFormatableListener。有多個聽衆很好。 Android會爲所掃描的標籤調用最具體的偵聽器。

或者,您可以使用NFCTools將NDEF消息寫入標籤。然後嘗試用您現有的代碼閱讀它。

相關問題