问题描述
我想执行定期的本地通知。我正在使用 Flutter_local_notification 和 Flutter Workmanager。问题是 callbackdispatcher 函数中的 executeTask 函数无法执行显示通知的代码,尽管它执行了例如调试消息。它没有给我任何错误或异常,工作结果是成功。我想知道可能是什么问题。显示本地通知的代码已经过测试,并且运行良好。 这是我对 Flutter Workmanager 的包装:
void callbackdispatcher() {
Workmanager.executeTask((taskName,inputData) async {
try {
print ("WorkManagerFactory::callbackdispatcher::executeTask()");
await notification.showNotification(inputData['title'],inputData['body']);
}
catch (e) {
print("There is indeed a problem with executing the notification code");
}
return Future.value(true);
}
);
}
void init() async {
print("WorkManagerFactory::init()");
WidgetsFlutterBinding.ensureInitialized();
await Workmanager.initialize(callbackdispatcher,isInDebugMode: true);
}
void registerMorningTask() async {
await Workmanager.registerPeriodicTask(
'1','periodicMorningMessage',frequency: Duration(minutes: 15),inputData: {'title': 'title for Now','body': 'body for Now'},);
}
void init() async {
print("Notification()::init()");
WidgetsFlutterBinding.ensureInitialized();
const AndroidInitializationSettings androidInitializationSettings = AndroidInitializationSettings('app_icon');
InitializationSettings initializationSettings = InitializationSettings(android: androidInitializationSettings);
await FlutterlocalnotificationsPlugin.initialize(initializationSettings,onSelectNotification: (String payload) async {
if(payload != null)
debugPrint('notification payload: ' + payload);
}
);
}
Future<void> showNotification(String inTitle,String inMessage) async {
print('Notification::showNotification()');
const AndroidNotificationDetails androidplatformChannelSpecifics =
AndroidNotificationDetails(
'your channel id','your channel name','your channel description',importance: Importance.max,priority: Priority.high,showWhen: true,styleinformation: BigTextStyleinformation(''),ongoing: false,playSound: true,enableVibration: true
);
const NotificationDetails platformChannelSpecifics =
NotificationDetails(android: androidplatformChannelSpecifics);
await FlutterlocalnotificationsPlugin.show(
0,inTitle,inMessage,platformChannelSpecifics,payload: 'item x');
return;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)