Я отправляю push-уведомление в приложение iOS Flutter. Обработка переднего плана работает правильно. Фоновый/уничтоженный режим работает так, что на панели задач появляется сообщение с уведомлением, и если пользователь нажимает на это сообщение, открывается приложение, и детали сообщения пересылаются.
Однако, если я поставлю приложение в фоновом режиме, отправьте сообщение, я НЕ нажимаю на уведомление на панели задач, а вместо этого просто возвращаю приложение на передний план, я вижу, что фоновый обработчик/прослушиватель ничего не сделал. Таким образом, если пользователь (хм, клиент) запускает приложение в фоновом режиме и игнорирует уведомление на панели задач, сам переводит приложение на передний план, данные сообщения не принимаются.
Кроме того, включение часть изображения также полностью игнорируется.
Возможности xCode включают фоновые режимы (фоновое получение и удаленные уведомления) и push-уведомления.
Мой полезная нагрузка выглядит следующим образом:
Код: Выделить всё
"message": {
"token": "my-token-here",
"data": {
"data_value_1": "DATA VALUE 1 test",
},
"notification": {
"title": "NOTIFICATION Title",
"body": "NOTIFICATION Body",
},
"apns":{
"payload":{
"aps":{
"mutable-content": 1,
"content_available": 1,
}
},
"headers": {
"apns-priority": "10",
},
"fcm_options": {
"image": 'https://t4.ftcdn.net/jpg/01/43/42/83/240_F_143428338_gcxw3Jcd0tJpkvvb53pfEztwtU9sxsgT.jpg'
}
}
}
Код: Выделить всё
void main() async{
WidgetsBinding widgetsBinding = WidgetsFlufluttertterBinding.ensureInitialized();
...
...
@pragma('vm:entry-point')
FuturefirebaseMessagingBackgroundHandler(RemoteMessage message) async {
print('listener hit (background)...message is received!!!!!!!!!!');
//THE ABOVE NEVER TRIGGERS!;
}
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform );
runApp(MyApp());
}
Согласно https:/ /firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages:
В ФОНОВОМ режиме приложения получают полезные данные уведомления в уведомлении. лоток и обрабатывает полезную нагрузку ТОЛЬКО тогда, когда пользователь нажимает на уведомление.
Это говорит мне о том, что размещение приложения из фонового режима на передний план без нажатие на уведомление, которое приходит через системный трей, полностью игнорирует сообщение. Итак, вопрос в том, почему тогда существует «firebaseMassagingBackgroundHandler»? Это только для Android?
Подробнее здесь: https://stackoverflow.com/questions/783 ... ot-working