如何在Android通知栏中显示操作按钮,即使应用程序已关闭?

3

我有一个安卓应用程序。使用通知时,我们需要显示一些操作按钮。当应用程序处于打开状态时,我们可以自由地构建通知并显示操作按钮。

但是当应用程序关闭时,在安卓的通知栏中接收到通知。应用程序开发人员无法控制构建用户界面和操作按钮。如何展示这些按钮呢? 从服务器端格式化数据是如何的,以便在应用程序中接收到通知时能够看到操作按钮?

1个回答

5
根据我的经验,这是因为您正在发送“通知消息”。正如谷歌在此处清楚地解释的那样:
“当应用程序在后台运行时,通知消息会传递到通知托盘。对于前台应用程序,消息由回调函数处理。”
现在,如果您想使用Firebase云消息传递发送通知,并希望始终以自定义方式显示接收到的通知,则可以使用不包含“notification”部分的FCM数据消息,如下所示:
{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "priority":"high",
    "data":{
      "title" : "Custom notif",
      "body" : "This is a custom data notification!",
      "action" : "A|B|C"
    }
  }
}

接收到这个通知后,Firebase 将不会在托盘面板中显示它,而是将其传递给您的应用程序(无论您的应用程序是在前台还是后台)。然后,您可以使用 data 部分中的字段创建和显示自定义通知以及自定义操作。
此外,您可以将任何字段放入 data 部分中,像 title 这样的字段只是示例。
客户端的额外实现细节:
对于在 Android(原生和/或 React Native)中处理数据消息,您可以使用远程消息(但方式不同)。
React Native: 要仅处理 React Native 中的数据通知,您可以使用 example

原生安卓: 在原生安卓中,您可以使用实现 FirebaseMessagingService 的服务的onMessageReceived(RemoteMessage remoteMessage)方法。然后像这里here所解释的那样,使用remoteMessage.getData()的有效载荷数据。


非常感谢。虽然我想知道我们是否可以通过通知实现它,但事实证明只有通过数据消息才能实现这种情况。 - shaktisinghmoyal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接