Я делаю интеграцию fcm с демонстрационным приложением flutter. Метод onMessage не вызывается, когда сообщение только с данными отправляется через почтальона в любых условиях (forground, background, kill.) (Ios физическое устройство iphone5s).
Я пробовал уведомление + сообщение с данными, оно работает правильно. как описано в плагине firebase_messaging.
{
"to" :"firebase-token",
"data" : {
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"body" : {
"message":"this is data message"
},
"title" : "data title",
"content_available" : true,
"priority" : "high"
}
}
здесь содержание запроса на уведомление почтальона
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
Fimber.d("onMessage: $message");
Fluttertoast.showToast(msg: "onMessage: $message",
toastLength: Toast.LENGTH_LONG
);
},
onLaunch: (Map<String, dynamic> message) async {
Fimber.d("onLaunch: $message");
Fluttertoast.showToast(msg: "onLaunch: $message",
toastLength: Toast.LENGTH_LONG
);
},
onResume: (Map<String, dynamic> message) async {
Fimber.d("onResume: $message");
Fluttertoast.showToast(msg: "onResume: $message",
toastLength: Toast.LENGTH_LONG
);
},
);
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
Fimber.d("Settings registered: $settings");
});
_firebaseMessaging.getToken().then((String token) {
Fimber.d("token: $token");
});
он находится в начальном состоянии домашней страницы.
у меня есть уведомления о разрешениях в IOS и хорошо работает с уведомлением + данные.
результат должен быть таким, как описано в https://pub.dartlang.org/packages/firebase_messaging#-readme-tab-