如何在不打开应用程序的情况下单击操作按钮后关闭通知?

How to dismiss notification after action button clicked without opening the app?

我正在使用 awesome_notifications 显示通知,并且有关闭通知的操作按钮,但问题是如果应用程序在后台,并且点击了操作按钮,它会关闭通知但是也打开我不想要的应用程序。那么,如何在不打开应用程序的情况下单击操作按钮时关闭通知呢?该通知还包含另一个打开应用程序的操作按钮,但第二个不应该。 遇到这种情况怎么办?

这是目前发生的事情:

显示通知的代码:

AwesomeNotifications().createNotification(
         content: NotificationContent(
           id: 333,
           title: 'Incoming Call',
           body: 'from $callerName',
           category: NotificationCategory.Call,
           channelKey: 'call_channel',
           largeIcon: 'asset://assets/images/logo_square.png',
           wakeUpScreen: true,
           fullScreenIntent: true,
           autoDismissible: false,
           showWhen: true,
           displayOnBackground: true,
           displayOnForeground: true,
           payload: {
             "callerName": callerName,
             "callerUsername": callerUsername,
             "callerID": callerID,
             "callerToken": callerToken,
             "callerImage": callerImage,
           },
         ),
         actionButtons: [
           NotificationActionButton(
               key: 'ACCEPT',
               label: 'Accept Call',
               color: Colors.green,
               autoDismissible: true,
           ),
           NotificationActionButton(
               key: 'REJECT',
               label: 'Reject Call',
               isDangerousOption: true,
               autoDismissible: true,
           ),
         ]
     );

在浏览 GitHub Repository of awesome_notifications 时找到了答案。 在 NotificationActionButton

中添加 buttonType as ActionButtonType.DisabledAction 即可在不打开应用程序的情况下直接关闭 notification

就像这样:

NotificationActionButton(
   key: 'DISMISS',
   label: 'Dismiss',
   autoDismissible: true,
   buttonType: ActionButtonType.DisabledAction,
   isDangerousOption: true
)

注意:这样做不会触发actionStream中的任何receivedAction