Flutter: невозможно перенаправить на указанный c экран при щелчке уведомлений, когда приложение находится в фоновом режиме, но не завершено в iOS - PullRequest
2 голосов
/ 18 февраля 2020

Я использовал плагин firebase_messaging для уведомлений, на обеих платформах уведомления работают нормально,

Однако я хочу перенаправить пользователя на указанный c экран при событии щелчка уведомления. Для стороны Android все работает нормально. Но для IOS он не работает, если приложение находится в фоновом режиме и не завершено (работает нормально, если приложение завершено).

Вот мой пример кода для интеграции уведомлений:

_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    print("onMessage: $message");
    gotoTempPage();
  },
  onLaunch: (Map<String, dynamic> message) async {
    print("onLaunch: $message");
    gotoTempPage();
  },
  onResume: (Map<String, dynamic> message) async {
    print("onResume: $message");
    gotoTempPage();
  },
);

Я использую версию плагина firebase_messaging: ^6.0.9 и версию флаттера v1.12.13+hotfix.5

Уже упоминал эти проблемы 935 , 1757 , 1677 но мне ничего не помогло.

1 Ответ

3 голосов
/ 19 февраля 2020

Привет, у меня была точно такая же проблема. Итак, согласно текущей документации плагина (firebase_messaging), вы должны внести некоторые изменения в ваш файл Appdelegate.m / Appdelegate.swift. Эта модификация является проблемой. Удалите следующий код из AppDelegate.swift или аналогичного в AppDelegate.m

if #available(iOS 10.0, *) {
          UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}

Кажется, это ошибка или проблема в этой версии firebase_messaging (6.0.9), как в здесь

...