#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
}
Поэтому, когда эта функция запускается в первый раз, она не будет работать (т. Е. Это помогает разрешить первый ложный вызов этой функции), в других случаях она будет работать, как ожидалось.