Фоновые уведомления не работают на iOS с пакетом Flutter firebase_messaging

#ios #flutter #push-notification #firebase-cloud-messaging

#iOS #flutter #push-уведомление #firebase-облако-обмен сообщениями

Вопрос:

Я сталкивался со многими подобными вопросами в StackOverflow и Github, но я не нашел ответа.

У меня есть профиль разработчика Apple, и я загрузил ключ авторизации APNs в Firebase.

Я включил фоновую выборку, удаленные уведомления и фоновую обработку, а также Push-уведомления в моем xCode.

Я добавил эти два фрагмента кода в AppDelegate.swift:

 import Firebase


if FirebaseApp.app() == nil {
  FirebaseApp.configure()
}
    ...
if #available(iOS 10.0, *) {
  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.current().delegate = self

  let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
  UNUserNotificationCenter.current().requestAuthorization(
    options: authOptions,
    completionHandler: {_, _ in })
} else {
  let settings: UIUserNotificationSettings =
  UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()
  

Я добавил эту строку в Info.plist:

 <key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
  

Я тоже пробовал (тоже не работает):

 key>FirebaseAppDelegateProxyEnabled</key>
<string>0</string>
  

Я следовал инструкциям из https://pub.dev/packages/firebase_messaging и я получаю уведомления, когда мое приложение находится на переднем плане (выполняется onMessage). Однако я вообще не получаю уведомлений, когда он работает в фоновом режиме. Я перепробовал все, что смог найти, ничего не работает. На данный момент я действительно в отчаянии. Это не работает для симулятора или реального устройства. Может ли это вообще работать? Если да, пожалуйста, помогите мне получить его.

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

1. У меня также была такая же проблема несколько месяцев назад, но эта статья помогла мне medium.com/@jun.chenying /…

2. Отлично, я получаю уведомление сейчас! Спасибо!!! Исправление заключалось в использовании key>FirebaseAppDelegateProxyEnabled</key> <string>NO</string>

Ответ №1:

Как и предполагал @ChyperX, эта статья была полезной https://medium.com/@jun.chenying/flutter-tutorial-part3-push-notification-with-firebase-cloud-messaging-fcm-2fbdd84d3a5e. Использование:

 <key>FirebaseAppDelegateProxyEnabled</key>
<string>NO</string>
  

в Info.plist вместо моих предыдущих попыток получилось.