Android アプリで Firebase Cloud Messaging のデータ ペイロード (通知を含む) を処理/処理する方法は?

ikevin8me

通知とデータの両方のペイロードを含む Firebase メッセージの受信に関して質問があります。ドキュメントには、データは「意図のエキストラに」到着すると言います。

私の質問は、どのインテント (またはアクティビティ)ですか? アプリをバックグラウンドに切り替えると、ユーザーが中断した画面が表示されます。アプリ内のすべてのインテント/アクティビティのエクストラを取得する必要がありますか?

アプリがフォアグラウンドになったら、実際にどこでどのようにデータ ペイロードを取得するようにコーディングしますか?

ありがとう!

追加:

つまり、私はすでに 10 件以上のアクティビティを持っており、アプリが終了するとさらに多くのアクティビティがあります。では、アプリがプッシュ データ ペイロードで再度開かれたかどうかを確認するには、すべてのアクティビティのエクストラを取得する必要がありますか?

ボブ・スナイダー

質問でリンクしたドキュメントには、次のように記載されています。

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

ランチャー アクティビティは、カテゴリ LAUNCHER を使用してマニフェストで指定されます。例えば:

    <activity
        android:name="com.example.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

デフォルトの動作をオーバーライドして、別のアクティビティを指定できます。あなたにメッセージ通知データ、プロパティを追加click_actionアクション文字列の値を持ちます。次に、アクティビティを作成し、アクションに一致するマニフェストにインテント フィルターを設定します。たとえば、次のメッセージを使用します。

{
  "to": "dhVgCGVkTSR:APA91b...mWsm3t3tl814l",
  "notification": {
    "title": "New FCM Message",
    "body": "Hello World!",
    "click_action": "com.example.FCM_NOTIFICATION"
  },
  "data": {
    "score": "123"
  }
}

次のようにインテント フィルターを定義します。

    <activity android:name=".MyFcmNotificationActivity">
        <intent-filter>
            <action android:name="com.example.FCM_NOTIFICATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

また、ドキュメントを少し明確にするために、メッセージが受信されたときにデータ ペイロードはアクティビティに配信されません。ユーザーが通知をクリックすると配信されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ