我在Flutter中使用了令人敬畏的通知来显示本地通知。我的计划是在通知中有一个操作按钮,当按下时,它会在后台(不打开应用程序)更改共享首选项中的一些值。这甚至有可能做到吗?
在初始化了令人敬畏的通知之后,我尝试在主函数中使用onActionReceivedMethod-listener和getInitialNotificationAction-method:
AwesomeNotifications().setListeners(onActionReceivedMethod: (action) async{
print(action.body);
});
// OR
ReceivedAction? receivedAction = await AwesomeNotifications().getInitialNotificationAction(
removeFromActionEvents: false
);
if (receivedAction?.body != null){
print(receivedAction.body);
}
这两个工作(单独使用)只有当应用程序已经启动,但他们也给出了这个错误:
出色的通知:无法在Dart中处理后台消息,因为未注册Dart后台处理程序。(BackgroundService:58)
但是当应用程序没有打开的时候,我怎么能让它工作呢?我能创建一个没有Firebase的backgroung处理程序吗?或者有没有其他方法可以实现这一点?
下面是我的代码,我如何创建通知:
static Future<void> createSimpleNotification() async {
await AwesomeNotifications().createNotification(
content: NotificationContent(
id: 1,
channelKey: 'important_channel',
title: 'Title',
body: 'Test',
largeIcon: 'asset://assets/iconPhoto.png'),
actionButtons: [
NotificationActionButton(
key:'key',
label: 'label',
actionType: ActionType.SilentBackgroundAction)]
);
}
1条答案
按热度按时间rryofs0p1#
我从这里找到了答案:Cannot find AwesomeNotifications().actionStream
我是这样实现的:
无论应用程序在后台还是在前台,它都能正常工作。