Open2
Flutterでプッシュ通知を取り扱う上でのまとめ
Flutterでプッシュ通知を扱う上での知見をまとめていく
2つのメッセージタイプ(通知メッセージ と データメッセージ)
FCMでは 通知メッセージ(notification)、データメッセージ(data)の2タイプのメッセージを送信することができる。
// サンプルペイロード
{
notification: {title: 通知のタイトル, body: 通知の本文}, // 通知メッセージ
data: {body: 通知の本文, title: 通知のタイトル} // データメッセージ
}
通知メッセージは、クライアントアプリに代わり、FCM SDKによって自動で処理される。
データメッセージはクライアントアプリによって処理される。
注意点として、アプリがフォアグラウンドにある時は、 アプリは onMessage()
にて、通知メッセージもデータメッセージも受け取れる。
_firebaseMessaging.configure(
// アプリがフォアグラウンドな状態で通知を受け取った
onMessage: (message) {
print(message);
// {notification: {title: 通知のタイトル, body: 通知の本文}, data: {body: 通知の本文, title: 通知のタイトル}}
},
}
けれども、アプリがバックグラウンドにあり、届いた通知をタップしてアプリを開いた場合など、通知メッセージは空になってしまう。
_firebaseMessaging.configure(
// アプリがバックグラウンドから復帰
onResume: (message) {
print(message);
// {notification: {}, data: {collapse_key: ... body: 通知の本文, title: 通知のタイトル, google.message_id:...}
},
}
FCM メッセージについて | Firebase
FirebaseCloudMessaging(FCM)を使って、Flutterでプッシュ通知を実装するまとめ|うぇるち|note