【发布时间】:2020-10-19 04:55:19
【问题描述】:
通知处理程序
void firebaseCloudMessagingListeners() {
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('onMessage ==> $message');
messageHandler(message);
},
onResume: (Map<String, dynamic> message) async {
print('onResume ==> $message');
messageHandler(message);
},
onLaunch: (Map<String, dynamic> message) async {
print('onLaunch ==> $message');
messageHandler(message);
},
onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler,
);
}
static Future<dynamic> myBackgroundMessageHandler(
Map<String, dynamic> message) {
print('onBackgroundMessage ==> $message');
if (message.containsKey('data')) {
final dynamic data = message['data'];
print('$data');
}
if (message.containsKey('notification')) {
final dynamic notification = message['notification'];
print('$notification');
}
return null;
}
发布https://fcm.googleapis.com/fcm/send
{
"to": "myFCMToken",
"priority": "high",
"data": {
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"data_title": "data_title",
"data_body": "data_body"
},
"notification": {
"title": "Good Night",
"body": "Wish you have a nice dream..",
"sound": "default"
}
}
当我发送带有上述有效负载的通知时,通知被传递到系统托盘,当我点击它时,我遇到了以下三种情况:
- 应用处于后台(关闭/终止),显示“数据”并调用 onLaunch 方法。
- 应用处于后台(最小化),“数据”丢失,未调用 onResume 方法。
- 应用在前台,“数据”丢失,onMessage 方法没有被调用。
问题是,如何接收或处理带有通知的“数据”也传递到系统托盘? 任何帮助将不胜感激。
【问题讨论】:
标签: ios flutter dart push-notification firebase-cloud-messaging