【问题标题】:Flutter local notification schedule - not working as expected颤振本地通知计划 - 未按预期工作
【发布时间】:2019-05-29 10:39:48
【问题描述】:

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

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

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

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(

    );
  }
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我刚刚遇到了同样的问题,我发现我的清单中没有添加一些必需的权限和接收者,所有详细信息都写在了计划通知标题下的文档中,以及这个link 到示例项目清单作为参考。

    希望对某人有所帮助。

    【讨论】:

      【解决方案2】:

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

      只需将初始化代码添加到您的 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(
      
              );
            }
          }
      

      【讨论】:

        【解决方案3】:

        我听说过一份报告,因为他们的应用尚未迁移到 AndroidX,因此发生了此问题,尽管该错误并不意味着这一点。你看过了吗?见https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility#how-to-migrate-a-flutter-app-to-androidx

        【讨论】:

          猜你喜欢
          • 2022-01-22
          • 1970-01-01
          • 2022-01-03
          • 1970-01-01
          • 2021-03-26
          • 2020-07-31
          • 2023-03-14
          • 2020-11-28
          相关资源
          最近更新 更多