2017-03-18 6 views
1

FCMプラグインを使用してionic2のプッシュ通知を行っています。 参照:https://www.npmjs.com/package/cordova-plugin-fcm34FCMのデバイストークンをIonic2に保存する方法

私はそれが正常に動作し、私はfirebaseコンソールからのプッシュを受けたことができhttps://github.com/edismooth/ionic2-firebase/tree/master42

を追いました。今私は独自のバックエンドでプッシュ通知を送信する管理者に自分のサーバーを構築したい。

私は1つの問題に直面しました:私はデバイストークンを得ることができますが、私はどのようにそれを保存するか分かりません。以下はトークンを取得する私のコードです:

initializeApp() { 
    this.platform.ready().then(() => { 
     // Okay, so the platform is ready and our plugins are available. 
     // Here you can do any higher level native things you might need. 
     StatusBar.styleDefault(); 

     FCMPlugin.getToken(
       function (token) { 
        console.log(token); //I can successfully get the token, but I don't know how to return it. 
        alert(token); 
       }, 
       function (err) { 
        console.log('error retrieving token: ' + err); 
       } 
      ); 

私は "戻り値"、 "価値あるストア"のような多くの方法を試しました。しかし、私はまだ "FCMPlugin.getToken"関数からそれをどうやって取得するのか分かりません。

誰でも手助けできますか?おかげ

答えて

3

あなたは矢印の機能を使用することができますが、このように:

initializeApp() { 

    // ... 

    FCMPlugin.getToken(
     (token) => { this.saveToken(token); }, 
     (err) => { this.showError(err); } 
    ); 

    // ... 

} 

// ... 

private saveToken(token: string): void { 
    // Save the token in the storage... 
} 

private showError(error: any): void { 
    // Show the error to the user 
} 

違いは、今あなたが矢印機能と...

を使用している矢印の関数式は、Aがあることです関数よりも構文が短い 式とはそれ自身をバインドしません、arguments、super、または new.target

したがって、矢印機能の内部にthisを使用すると、コンポーネントインスタンス(現在の関数ではない)が参照されます。ユーザーは、あなたが自分のデバイストークンを保存することができ、あなたのアプリにログインすると、あなたのlogin()機能で

0

あなたは...このコード

this.push.register().then((t: PushToken) => { 
    return this.push.saveToken(t); 
}).then((t: PushToken) => { 
    console.log('Token saved:', t.token); 
}); 

を使用することができます

関連する問題