Firebase経由でiPhoneアプリにPush通知するときDATAだけだと通知が表示されなかった
経緯
- Androidアプリが最初にあり、Firebaseを使用したPush通知を実装していた
- サーバーから GCM を使って Push通知を送信していた
- サーバからは以下のようなデータを送信していた
{
"to" : "DEVICE TOKEN",
"data" : {
"message" : "Push Message"
}
}
- 同じ内容でiOSアプリへPushを実行した場合、アプリが Foreground にないとき、Push通知のEventがアプリ内で取得できなかった
解決策
- iOS でアプリが Foreground にない場合、アプリまでイベントが上がらない(OS側で処理される)らしい
- 送信するデータを以下のように変更する
{
"to" : "DEVICE TOKEN",
"priority" : "high",
"content_available" : true,
"data" : {
"message" : "Push Message"
},
"notification" : {
"title" : "Push Title",
"body" : "Push Message"
}
}
- notification を指定すれば、OS側がキャッチして、Pushメッセージを表示してくた
- priority を high に指定すると Push通知が画面の上から表示される
以上です