我想每天在指定时间显示通知,并且我已经实现了显示每日通知的代码,但在我想打电话时不显示通知是行不通的。我正在使用这个插件 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(
);
}
}
最佳答案
您必须先初始化本地通知插件。
只需将初始化代码添加到您的 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/