我正在使用带有“ firebase_messaging 4.0.0 + 1”的flutter。 Android版本运作良好。在iOS上,如果应用程序在后台运行,则通知会按预期运行。如果应用程序位于前台,则不会调用onMessage ...
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) {
print('on message $message');
},
onResume: (Map<String, dynamic> message) {
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) {
print('on launch $message');
},
);
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.getToken().then((token) {
print('Token: ' + token);
});
答案 0 :(得分:0)
使用稳定的颤振通道时,我也面临类似的问题。当我切换到主人之后
flutter channel master
问题已经解决了。
值得一提的是,Android和iOS有不同的有效负载处理程序。
对于有效载荷:
{
"to": "<token>",
"notification": {
"title": "title_test1",
"body": "body_test_1"
},
"data": {
"id": "123",
"event": "test_event"
}
}
data
处理程序将是:
_firebaseMessaging.configure(
onMessage: (message) {
if (Platform.isAndroid) {
print("Android data handler; id: ${message['data']['id']}; event: ${message['data']['event']}");
} else if (Platform.isIOS) {
print("iOS data handler; id: ${message['id']}; event: ${message['event']}");
}
},
onLaunch: (message) {
...
},
onResume: (message) {
...
},
);