背景
業務でFCMの話題になると、毎回仕様を忘れてしまって調べ直しになるのでまとめました。
(公式ドキュメントを熟読して整理した内容です。実機での確認ができていないので、実際の動作と違っている場合はご指摘いただけると幸いです。)
送信するデータについて
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}
-
notification
はコンソールから送信する場合は必須。 -
data
は任意で好きな値を入れられる。
notification
のtitleとbodyはコンソールで言うとこの2つのフォームです。
data
はコンソールで言うと下記のカスタムデータのフォームです。
通知の種類について
通知メッセージ
とデータメッセージ
の2種類がある。
- JSONに
notification
が含まれる場合は通知メッセージ
として扱われ、プッシュ通知はSDK側で自動表示される。 - JSONに
notification
が含まれない場合はデータメッセージ
として扱われ、アプリがプッシュ通知を自前で作って表示させる必要がある。
※ここで言うプッシュ通知とは、端末の通知領域に表示されるViewのことです。
通知メッセージの表示制御とデータ処理について
通知メッセージ
はアプリがフォアグラウンド/バックグラウンドどちらにいるかによって、表示制御の仕方とデータ処理のタイミングが変わる。
-
バックグラウンド
の場合は、プッシュ通知はSDK側で自動表示される。dataに入れた任意の値はプッシュ通知をタップした後でアプリが自前で処理可能。 -
フォアグラウンド
の場合は、アプリがプッシュ通知を自前で作って表示させる。(notificationが含まれていない場合(データメッセージ
)と同様。)
参考