onSelectNotification метод flutter_local_notifications вызывается сразу при запуске страницы в Android (в iOS такой проблемы нет)

#flutter #notifications #flutter-layout #flutter-dependencies

#трепетание #уведомления #флаттер-макет #flutter-зависимости

Вопрос:

В моем приложении я использую плагин flutter_local_notifications и метод onSelectNotification, который немедленно запускается в Android при запуске страницы, даже если вы не нажимаете на уведомление.

Вот как выглядит мой initState:

  @override
  void initState() {
    super.initState();

flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
final android = AndroidInitializationSettings('@mipmap/ic_launcher');
final iOS = IOSInitializationSettings();
final initSettings = InitializationSettings(android: android, iOS: iOS);

flutterLocalNotificationsPlugin.initialize(initSettings,
    onSelectNotification: _onSelectNotification);

 }
 

мое уведомление _onSelectNotification, расположенное за пределами метода сборки

В iOS все работает отлично

Ответ №1:

Я только что добавил флаг для обработки этого случая:

 bool flagDueNotificationIssue = true; //called once when page opened for the first time

_onSelectNotification(){  
   if (Platform.isAndroid amp;amp; flagDueNotificationIssue) {
      flagDueNotificationIssue = false;
      return;
    }

.... task to do when notification clicked
}
 

Поэтому, когда эта функция запускается в первый раз, она не будет работать (т. Е. Это помогает разрешить первый ложный вызов этой функции), в других случаях она будет работать, как ожидалось.