有一个预定的通知,该通知应该在5秒之后显示。在void initState
函数中调用此计划的通知。我正在使用此package显示通知。
通知将在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',
);
}
}
Note单击通知时需要调用函数whenNotificationSelect
,但由于其他原因,我不知道应用程序启动时会立即调用此函数。 我想要 whenNotificationSelect
仅在单击通知时调用,而不在应用启动时调用。
谢谢你,非常感谢。
尝试一下
onSelectNotification:(String payload) => whenNotificationSelect(String payload)
[当您不使用(字符串有效负载)时,这意味着该函数也会在null上触发。每当需要传递参数时,请使用(arguments)=> functionName(arguments)