Flutter 本地通知时间表 - 未按预期工作

标签 flutter dart

我想每天在指定时间显示通知,并且我已经实现了显示每日通知的代码,但在我想打电话时不显示通知是行不通的。我正在使用这个插件 link

当我运行应用程序时,我在控制台上收到此警告,这是屏幕截图 a busy cat

我的代码实现有误吗? 这是代码

import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'dart:async';

class App extends StatefulWidget {
  @override
  _AppState createState() => _AppState();
}


class _AppState extends State<App> {
  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();

  showNotification() async{
    var time = new Time(3,51, 0);//at 3.30 
    var androidPlatformChannelSpecifics =
    new AndroidNotificationDetails('repeatDailyAtTime channel id',
        'repeatDailyAtTime channel name', 'repeatDailyAtTime description');
    var iOSPlatformChannelSpecifics =
    new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(
    androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await flutterLocalNotificationsPlugin.showDailyAtTime(
        0,
        'Teer Result Time',
        'Open The App and check for the Result',
        time,
        platformChannelSpecifics);
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    showNotification();
  }
  @override
  Widget build(BuildContext context) {
    return Container(

    );
  }
}

最佳答案

您必须先初始化本地通知插件。

只需将初始化代码添加到您的 initstate 中,如下所示:

    import 'package:flutter/material.dart';
    import 'package:flutter_local_notifications/flutter_local_notifications.dart';
    import 'dart:async';

    class App extends StatefulWidget {
      @override
      _AppState createState() => _AppState();
    }


    class _AppState extends State<App> {
      FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();

      showNotification() async{
        var time = new Time(3,51, 0);//at 3.30 
        var androidPlatformChannelSpecifics =
        new AndroidNotificationDetails('repeatDailyAtTime channel id',
            'repeatDailyAtTime channel name', 'repeatDailyAtTime description');
        var iOSPlatformChannelSpecifics =
        new IOSNotificationDetails();
        var platformChannelSpecifics = new NotificationDetails(
        androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
        await flutterLocalNotificationsPlugin.showDailyAtTime(
            0,
            'Teer Result Time',
            'Open The App and check for the Result',
            time,
            platformChannelSpecifics);
      }

      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        //-------------------- Initialization Code---------------------
        FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
    // 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);
   //--------------------------------------
        showNotification();
      }
      @override
      Widget build(BuildContext context) {
        return Container(

        );
      }
    }

关于Flutter 本地通知时间表 - 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56358631/

相关文章:

android - Flutter 更新 8/1/17 破坏了 Android

flutter - 如何更改中心的循环进度指示器

testing - 使用 flutter 驱动程序中的系统后退按钮

flutter - 传播运算符(…)不适用于传播列表中的小部件

具有自定义形状的 Flutter 按钮 - (三角形)

flutter - Dart - 无法从连接流中捕获异常

dart - 有没有办法用 Flutter 打印控制台消息?

dart - 从方法访问 Map 对象到构建方法

regex - Dart:RegExp 示例

mysql - 如何将 mysql 数据库与 Dart 连接?