Flutter iOS通知问题

时间:2020-04-08 11:34:39

标签: flutter notifications

我正在使用flutter_local_notifications,并且一切正常,除了在iOS应用程序中通知不起作用(在应用程序外部时,通知不起作用)之外。我已经阅读了文档,并调用了main.dart:

Future onDidReceiveLocalNotification(
  int id, String title, String body, String payload) async {
// display a dialog with the notification details, tap ok to go to another page
showDialog(
  context: context,
  builder: (BuildContext context) => CupertinoAlertDialog(
    title: Text(title),
    content: Text(body),
    actions: [
      CupertinoDialogAction(
        isDefaultAction: true,
        child: Text('Ok'),
        onPressed: () async {
          Navigator.of(context, rootNavigator: true).pop();
          await Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => NavBar(
                page: 1,
              ),
            ),
          );
        },
      )
    ],
  ),
); }

这是我在main.dart中进行的初始化:

FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
  FlutterLocalNotificationsPlugin();

initState() {
 super.initState();
  // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project
  var initializationSettingsAndroid =
    AndroidInitializationSettings('app_icon');
var initializationSettingsIOS = IOSInitializationSettings(
  onDidReceiveLocalNotification: onDidReceiveLocalNotification,
);
var initializationSettings = InitializationSettings(
    initializationSettingsAndroid, initializationSettingsIOS);

flutterLocalNotificationsPlugin.initialize(initializationSettings,
    onSelectNotification: onSelectNotification);
}

在这里我可以在其他页面中设置通知:


   FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();
   Future _showDailyAtTime(int id, int hour, int minute) async {
  var time = Time(hour, minute, 0);
  var androidPlatformChannelSpecifics = AndroidNotificationDetails(
      'repeatDailyAtTime channel id',
      'repeatDailyAtTime channel name',
      'repeatDailyAtTime description',
      importance: Importance.Max,
      priority: Priority.High,
      ticker: 'ticker');
  var iOSPlatformChannelSpecifics = IOSNotificationDetails();
  var platformChannelSpecifics = NotificationDetails(
      androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
  await flutterLocalNotificationsPlugin.showDailyAtTime(
      id,
      'show daily title',
      'Daily notification shown at approximately ${_toTwoDigitString(time.hour)}:${_toTwoDigitString(time.minute)}:${_toTwoDigitString(time.second)}',
      time,
      platformChannelSpecifics);
  }

有什么想法吗? 谢谢

0 个答案:

没有答案