【问题标题】:Add Action To Firebase Notification向 Firebase 通知添加操作
【发布时间】:2016-09-24 07:13:58
【问题描述】:

我正在尝试将一个操作按钮添加到在 Firebase 9.0.0 上生成的通知中,适用于 Android,当应用程序处于 后台 时。

有什么想法吗?

谢谢!!

【问题讨论】:

    标签: android push-notification firebase firebase-cloud-messaging


    【解决方案1】:

    我会考虑查看以下文档:

    在后台应用中处理消息

    https://firebase.google.com/docs/cloud-messaging/downstream#backgrounded

    您似乎需要更改 FirebaseMessagingService 的意图过滤器以处理 OnClick 操作。

    【讨论】:

    • 感谢您的回复,亚历山大!我正在尝试自定义通知本身,并向其添加操作。但是,click_action 定义了单击整个通知时应该发生的情况。
    【解决方案2】:

    firebase-cloud-messaging 不提供用于向通知添加操作按钮的 API。

    您可以在此处向 firebase 库请求新功能: https://firebase.google.com/support/contact/bugs-features/

    现在您可以做的是通过server-side API 发送带有自定义有效负载的data-message 然后,您可以在 onMessageReceived() 中接收该有效负载并生成您的自定义通知。

    【讨论】:

    • 谢谢!我的问题是我试图从 Firebase 控制台发送通知。那样添加“数据”键对我不起作用...
    【解决方案3】:

    因此,为了在应用程序处于后台时自定义通知,正如 Diego 所提到的,当前唯一的方法是自己创建通知。将“data”键添加到通知有效负载,导致onMessageReceived() 回调,您可以在其上创建任何通知和通知。

    问题是,我尝试从 Firebase 控制台发送通知,而不是从 API。在那里我无法正确添加数据键并捕获它。从 API 一切正常。

    【讨论】:

    • 您能否更具体地说明在通知负载中添加数据键仅数据键
    【解决方案4】:

    假设您已经知道必须使用 only data key (I answered here, too) 在后台发送到您的应用程序,您可以像这样向通知消息构建器添加一个操作:

    final NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
    .addAction(
                        R.drawable.ic_setting_light,
                        res.getString(**R.string.Your_Button_String**),
                        PendingIntent.getActivity(
                                context,
                                0,
                                **Your_Intent_To_Open_When_Button_Is_Click**,
                                PendingIntent.FLAG_UPDATE_CURRENT));
    

    当然,这必须在 Android 端的内部处理逻辑中。

    注意:通知操作仅在 Android 4.1 或更高版本中受支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多