2016-08-17 11 views
0

私はFirebase Cloud Messagingで作業しています。Firebaseプル通知

  1. アンドロイド:私はドキュメントから理解することができませんでした質問のカップルを持っているアプリが閉じていると仮定します(バックグラウンドにいない:を閉じました)。私はまた、データペイロードに通知を送信する場合、このデータペイロードは、通知とデータペイロードの両方を持つテントエキストラ

メッセージ、背景と フォアグラウンドの両方を通じてアクティビティに渡されます。この場合、通知はデバイスのシステムトレイの に配信され、データペイロードはランチャーアクティビティの目的の のエクストラに配信されます。

通知をタップしないとどうなりますか?データペイロードは失われていますか?それを取得する方法はありますか?

  1. iOS/Android。ユーザーが通知を無効にし、クライアントに通知を送信したとします。アプリケーションの開始時に通知を取得(プル)する方法はありますか?

どうもありがとうございました

答えて

1

を待たなければならないと仮定し、そこにあなたがデータペイロードを取得することができますwith remoteMessage.getData().get("key_for_parameter"); key_for_parameterは、通知で送信するパラメータの名前です。このメソッドは、アプリケーションが閉じていても呼び出されます。ただし、通知の「通知」パラメータを省略した場合にのみ、「onMessageReceived」が呼び出されることを考慮してください(this post

したがって、onMessageReceivedにパラメータを設定すると、 DBに格納するようなアプリケーションでは、ユーザーが通知をクリックしなければデータを失うことはありません。

+0

これは素晴らしいことです。私は、 "通知"が省略されている場合にのみ "onMessageReceived"が呼び出されるという事実を忘れていました。奇妙じゃない?私はドキュメントでこれを見つけられませんでした。 –

0

バックグラウンドでアプリであれば、Firebaseは)(onMessageReceivedをトリガしません。なぜ.....?何も思いつきません。このような状況では、FirebaseMessagingServiceを実装する際に何の問題もありません。

文書によれば、バックグラウンドメッセージの到着を処理したい場合は、メッセージと共に「click_action」を送信する必要があります。 Firebaseのコンソールからメッセージを送信することはできませんが、Firebase API経由でのみ可能です。それはマーケティングの人々がそれを使用できるようにするためにあなた自身の "コンソール"を構築​​する必要があることを意味します。だから、これはFirebaseコンソールもまったく役に立たない!

この新しいツールの背後にある本当に良い、有望なアイデアはありますが、ひどく実行されました。

私たちは、通知を受信したときにonMessageReceivedメソッドが呼び出されるアプリは(ないバックグラウンドで)閉じている場合は、新しいバージョンと改良/修正