Flutter Firebase Messaging не работает на IOS, когда приложение работает в фоновом режиме или закрыто - PullRequest
6 голосов
/ 22 февраля 2020

Я настроил Firebase Cloud Messaging с флаттером. Уведомления работают на переднем плане. но не работает, когда работает в фоновом режиме или приложение закрыто.

Выполнены следующие шаги.

  • Сгенерирован идентификатор приложения и pu sh Введите https://developer.apple.com/account/resources/certificates/
  • Добавлен info.plist в папку ios / Runner
  • Включены возможности Pu sh
  • Загружен сертификат APNS в консоль Firebase
  • Добавлены строки в AppDelegate.swift

Также попытался удалить следующую строку, как предложено для Flutter Firebase Cloud Messaging - Уведомление, когда приложение в фоновом режиме , но оно все еще не работает.

if (@available (iOS 10.0, *)) {[UNUserNotificationCenter currentNotificationCenter] .delegate = (id) self; }

Flutter Doctor

[✓] Flutter (Channel beta, v1.12.13+hotfix.6, on Mac OS X 10.14.5 18F132, locale en-IN)

[✗] Android toolchain - develop for Android devices

    ✗ Unable to locate Android SDK.

      Install Android Studio from: https://developer.android.com/studio/index.html

      On first launch it will assist you in installing the Android SDK components.

      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).

      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.

      You may also want to add it to your PATH environment variable.



[✓] Xcode - develop for iOS and macOS (Xcode 11.3)

[✓] Chrome - develop for the web

[!] Android Studio (not installed)

[✓] Connected device (3 available)

Одна вещь, которую я заметил, что, когда приложение устанавливается впервые, он не просит меня проверить, разрешаю ли я приложению отправлять уведомление pu sh.

My Код имеет следующие строки на странице после страницы входа.

_firebaseMessaging.requestNotificationPermissions(
        const IosNotificationSettings(sound: true, badge: true, alert: true));
    _firebaseMessaging.onIosSettingsRegistered
        .listen((IosNotificationSettings settings) {
      print("Settings registered: $settings");
    });

Также проверяется, отмечены ли все следующие настройки.

enter image description here

Ответы [ 3 ]

4 голосов
/ 25 февраля 2020

У меня такая же проблема. Я все сделал, но функция onmessage в приложении работает хорошо. Однако onLaunch (), onResume () не работает.

1 голос
/ 24 апреля 2020

Мое решение выглядит следующим образом и работает.

publspe ​​c .yaml firebase_messaging: ^ 6.0.9

Удалите следующую строку из ios / runner / AppDelegate.m или ios / runner / AppDelegate.swift, если используется.

if (@available (iOS 10.0, *)) {[UNUserNotificationCenter currentNotificationCenter] .delegate = (id) self; }

в коде Dart использовать условное == false, должно появиться всплывающее окно для подтверждения уведомления.

myFirebaseMessagingService.requestNotificationPermissions (const IosNotificationSettings (sound: true, badge: true, alert: true, предварительный: false));

В Xcode после Pu sh уведомления вместе с фоновой выборкой и удаленным уведомлением.

enter image description here

1 голос
/ 12 апреля 2020

Убедитесь, что Push Notifications & Background Mods Возможности были включены на вкладке All в Signing & Capabilities, а не только в Profile, как я делал.

ScreenShot

https://github.com/FirebaseExtended/flutterfire/issues/1041#issuecomment -612660797

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...