Есть запланированное уведомление, которое должно появиться через 5 секунд . Это запланированное уведомление вызывается внутри функции void initState
. Я использую этот пакет для отображения уведомлений.
Уведомление показывается точно через 5 секунд , поэтому проблем здесь нет.
Проблема в том, что существует другая функция, которая должна вызываться при нажатии на уведомление. Но эта функция вызывается задолго до того, как уведомление появляется, и я не знаю, как это происходит. Я пробовал разные подходы, чтобы решить эту проблему, но не работает.
Ниже приведен код, где все это происходит.
class _HomePageState extends State<HomePage> {
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;
@override
void initState() {
super.initState();
flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
var android = new AndroidInitializationSettings('@mipmap/ic_launcher');
var initNotifSettings = new InitializationSettings(android, null);
flutterLocalNotificationsPlugin.initialize(initNotifSettings,
onSelectNotification: whenNotificationSelect);
showNotification();
}
Future whenNotificationSelect(String payload) async {
print('Payload: $payload');
Navigator.pushNamed(context, '/notifications');
}
showNotification() async {
var android = new AndroidNotificationDetails(
'channel id', 'channel name', 'channel description');
var platform = new NotificationDetails(android, null);
var scheduledNotificationDateTime =
DateTime.now().add(Duration(seconds: 2));
await flutterLocalNotificationsPlugin.schedule(
0,
'Good morning!',
'Greetings from me.',
scheduledNotificationDateTime,
platform,
payload: 'Simple App',
);
}
}
Примечание Функция whenNotificationSelect
он должен вызываться при нажатии на уведомление, но по другим причинам, по которым я не знаю, эта функция вызывается сразу после запуска приложения. Я хочу, чтобы whenNotificationSelect
вызывался только при нажатии на уведомление, а не при запуске приложения.
Спасибо, большое спасибо.