、それは述べて:通知とデータペイロードの両方を持つ
メッセージ、背景と フォアグラウンドの両方を。この場合、通知が デバイスのシステムトレイに配信され、データペイロードはエキストラであなたランチャー活動の意図
ランチャー活性は、カテゴリを使用して、マニフェストで指定されているの 送達されます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>
デフォルトの動作を上書きして、別の動作を指定できます。 message notification dataには、値がアクション文字列の値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>
およびドキュメントを少し明確にするために、データペイロードは、メッセージが受信されたアクティビティに配信されません。ユーザーが通知をクリックすると配信されます。
回答を更新して、デフォルトの動作を上書きする方法の説明を追加しました。 –