2017-03-01 22 views
2

NFCカードが検出されたときに電話機の振動を行う機能を作成しようとしています。 私はイオン2を使用しています: https://github.com/chariotsolutions/phonegap-nfcイオン2:NFCを使用

私はこのようにしました。 は.TSファイルで:.htmlのファイルで

readNFCNdefListener() { 
    console.log("NFC READ OK"); 
    NFC.addTagDiscoveredListener(onSuccess => function() { 
     this.nfc_status = 'Read NdefListener'; 
     console.log('Read NdefListener', onSuccess); 
     Vibration.vibrate([1000,250,1000]); 
    }); 
    } 

<ion-card> 
    <ion-item (click)="readNFCNdefListener()"> 
     <ion-label>NFC Nef : {{this.nfc_status}}</ion-label> 
    </ion-item> 
    </ion-card> 

それだけでは効果的ではありません。私はこのプラグインの使い方を本当に理解していません。 誰かが私にそれを表示する方法は?

PS: 私のデバイスでNFCを有効にします。

インポートNFCとNdefがあります。

答えて

2

あなたのconfig.xmlにいくつかのものを追加する必要があります。

<platform name="android"> 
    <uses-permission android:name="android.permission.NFC" /> 
    <uses-feature android:name="android.hardware.nfc" android:required="true" /> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
     <data android:mimeType="text/pg"/> 
     <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
    </platform> 

をそして、あなたはXMLエラーが詳細はウィジェット

xmlns:android="http://schemas.android.com/apk/res/android" 

にファイルの先頭に以下を追加している場合アンドロイドのためのインテントフィルタについて参照してください。私のTSに https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#ndef-disc

私が持っているファイル:

import {NFC, Ndef} from 'ionic-native'; 
.. 
    addNfcListeners():void { 
     NFC.addTagDiscoveredListener((tagEvent:Event) => this.tagListenerSuccess(tagEvent)); 
     NFC.addNdefListener((tagEvent:Event) => this.tagListenerSuccess(tagEvent)); 
    } 
    tagListenerSuccess(tagEvent:Event) { 
     console.log(tagEvent); 
    } 

ログにログが表示されます。あなたが簡単(ではない最高の)ソリューションはアンドロイドスタジオを開くことですログを参照する方法を知らないとあなたは私の場合は、あなたのAndroidモニター

にそれを持っています場合、それはだった:

03-02 17:31:33.712 27750-16921/com.ionicframework.tbcbyjeff820435 V/NfcPlugin: var e = document.createEvent('Events'); 
                       e.initEvent('ndef-mime'); 
                       e.tag = {"id":[59,12,-6,-33],"techTypes":["android.nfc.tech.NfcA","android.nfc.tech.MifareClassic","android.nfc.tech.Ndef"],"type":"com.nxp.ndef.mifareclassic","maxSize":716,"isWritable":true,"ndefMessage":[{"tnf":1,"type":[84],"id":[],"payload":[2,102,114,78,73,67,79,76]}],"canMakeReadOnly":true}; 

あなたのタグのコンテンツは

"ndefMessage":[{"tnf":1,"type":[84],"id":[],"payload":[2,102,114,78,73,67,79,76]}] 

です。まだ解読作業中です。あなたを助けてくれることを願っています

+0

私はconfig.xmlにこれを持っていました。しかし、それは動作しません...私はエラーがないので、私は理解していません。 私のコードは正しいと思いますか? –

+0

私の例では、私のNFCタグに情報があります。私はいくつかのテキストがそれに書かれているので、mimeType = "text/pg"が必要な理由です。他のフォーマットが必要な場合は、ここでそれを読む方法を確認してください:https://developer.android.com/guide/topics/connectivity/nfc/nfc.html。私のコメントを更新します@ V.Pivet –