41

通知を受信したときにアプリケーションを自動的に開きたいのですが、これは Firebase と新しい FCM 通知で可能ですか?

click_action を設定できることはわかっていますが、それは通知クリックで開始するアクティビティをカスタマイズするためだけのものです。通知を受信したときに自動的に開始するものが必要です。

クイック スタート メッセージング Firebase サンプルを試してみたところ、onMessageReceived() メソッドがありますが、アプリがフォアグラウンドにある場合にのみ機能します。アプリがバックグラウンドでも実行されるものはありますか? GCM は、通知が受信されたときに呼び出されるブロードキャスト レシーバーからアクティビティ インテントを直接開始することで、私がここで望んでいるようなことを行うことができます。

4

4 に答える 4

19

ガイドのこのセクションは、バックグラウンド アプリのパズルの鍵のようです。

メッセージを受信するにはFirebaseMessagingServiceを拡張 するサービス
を使用します。サービスは、次の例外を除いて、ほとんどのメッセージ タイプに提供されているコールバックをオーバーライドする必要があります。onMessageReceived

アプリがバックグラウンドにあるときに配信される通知。
この場合、通知はデバイスのシステム トレイに配信されます。ユーザーが通知をタップすると、デフォルトでアプリ ランチャーが開きます。

通知とデータ ペイロードの両方を含むメッセージ。
この場合、通知はデバイスのシステム トレイに配信され、データ ペイロードはランチャー アクティビティのインテントのエクストラで配信されます。

基本的に、アプリがバックグラウンドになっている場合、この時点では本当に応答性が低く、実行されていません。代わりに、メッセージはシステム トレイに配信されます。ただし、すぐ下に、解決策が説明されています。

アプリを開いて [バックグラウンドで] 特定のアクションを実行する場合は、通知ペイロードで click_action を設定し、起動するアクティビティのインテント フィルターにマップします。たとえば 、次のようなインテント フィルタをトリガーするには、click_actionOPEN_ACTIVITY_1に設定します。

<intent-filter>
  <action android:name="OPEN_ACTIVITY_1" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
于 2016-06-01T05:19:33.913 に答える
2

[Android] (Firebase Cloud Messaging ではなく) Firebase Notifications を使用している場合は、build.gradle に Firebase Messaging を含め、アプリを Firebase コンソールのプロジェクトにリンクするだけです。

アプリがバックグラウンドにある場合、コンソールから送信されたメッセージはシステム通知を提供し、これに触れるとアプリがアクティブになります。

こちらをご覧ください: https://youtu.be/KpTSpVh9SfY?t=10m22s

于 2016-06-23T23:31:28.703 に答える