Обработчик фоновых сообщений в режиме выпуска iOS не вызывается, когда приложение находится в фоновом режиме [FCM, Flutter]

# #ios #flutter #firebase-cloud-messaging #firebase-notifications

Вопрос:

Мой обработчик фоновых сообщений для FCM не вызывается в iOS.

Я выполнил действия, описанные здесь, при настройке FCM для ios.

Я также включил и проверил фоновую выборку и удаленные уведомления соответственно, как показано на рисунке

введите описание изображения здесь

Сообщения FCM с уведомлением или данными уведомления работают нормально.

Однако, когда я использую сообщения только с данными для запуска обработчика фоновых сообщений, обработчик не запускается.

Ниже приведен мой код:

     Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
      await Firebase.initializeApp();
      print('Handling a background message ${message.messageId}');
      print(message.data);
   
    }
    
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
      setupDependencies();
      runApp(MyApp());
      }
 

Ниже приведены данные, которые я отправил почтальону для проверки фонового обработчика:

 {
    "content_available" : true,
    "priority" : "high",
   "data" : {
        "click_action": "FLUTTER_NOTIFICATION_CLICK",
        "x": "22",
   },
    "to":"xxxUSER_FCM_TOKENxxx"
}
 

Есть какие-нибудь предложения или идеи о том, как это сделать?

Комментарии:

1.Попробуй content-available: 1 developer.apple.com/documentation/usernotifications/…

2. Я пробовал, но там написано, что «Поле «content_available» должно быть логическим значением JSON: 1″

3. Хорошо, может быть, FCM переведет его перед отправкой в APNS.

4. да, я тоже так думаю. Как вы думаете, что еще может быть причиной этой проблемы?

5. Самое странное, что иногда это работает, когда я использую отладочную версию, но не работает в моем приложении для выпуска.