FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
new FlutterLocalNotificationsPlugin();
var initializationSettingsAndroid;
var initializationSettingsIOS;
var initializationSettings;
void _showNotification() async {
await _demoNotification();
}
Future<void> _demoNotification() async {
var now = DateTime.now();
print(now);
var time_spec = new Time(10, 46, 10);
print(time_spec.hour);
var vibrationPattern = new Int64List(4);
vibrationPattern[0] = 0;
vibrationPattern[1] = 1000;
vibrationPattern[2] = 5000;
vibrationPattern[3] = 2000;
var androidPlatformChannelSpecifics = AndroidNotificationDetails(
'channel_ID', 'channel name', 'channel description',
importance: Importance.Max,
priority: Priority.High,
ticker: 'test ticker');
var iOSChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics = NotificationDetails(
androidPlatformChannelSpecifics, iOSChannelSpecifics);
await flutterLocalNotificationsPlugin.showDailyAtTime(6, 'Reminder',
'Did you add your Details today', time_spec, platformChannelSpecifics,
payload: "payload");
var pending = flutterLocalNotificationsPlugin.pendingNotificationRequests();
}
@override
void initState() {
super.initState();
initializationSettingsAndroid =
new AndroidInitializationSettings('@mipmap/ic_launcher');
initializationSettingsIOS = new IOSInitializationSettings(
onDidReceiveLocalNotification: onDidReceiveLocalNotification);
initializationSettings = new InitializationSettings(
initializationSettingsAndroid, initializationSettingsIOS);
flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: onSelectNotification);
}
Future<void> onSelectNotification(String payload) async {
if (payload != null) {
print('notification payload: ' + payload);
}
// Navigator.push(
// context, new MaterialPageRoute(builder: (context) => new Setting()));
}
Future onDidReceiveLocalNotification(
int id, String title, String body, String payload) async {
await showDialog(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: Text(title),
content: Text(body),
actions: <Widget>[
CupertinoDialogAction(
isDefaultAction: true,
child: Text('Ok'),
onPressed: () async {
Navigator.of(context, rootNavigator: true).pop();
await Navigator.push(context,
MaterialPageRoute(builder: (context) => Setting()));
},
)
],
));
}
这是用于在特定时间显示每日通知的代码 ................................................... ................................................... ................................................... ................................................... ................................................... ................................................... ................................................... .................................... 这是对的吗