【发布时间】:2016-09-24 07:13:58
【问题描述】:
我正在尝试将一个操作按钮添加到在 Firebase 9.0.0 上生成的通知中,适用于 Android,当应用程序处于 后台 时。
有什么想法吗?
谢谢!!
【问题讨论】:
标签: android push-notification firebase firebase-cloud-messaging
我正在尝试将一个操作按钮添加到在 Firebase 9.0.0 上生成的通知中,适用于 Android,当应用程序处于 后台 时。
有什么想法吗?
谢谢!!
【问题讨论】:
标签: android push-notification firebase firebase-cloud-messaging
我会考虑查看以下文档:
在后台应用中处理消息
https://firebase.google.com/docs/cloud-messaging/downstream#backgrounded
您似乎需要更改 FirebaseMessagingService 的意图过滤器以处理 OnClick 操作。
【讨论】:
firebase-cloud-messaging 不提供用于向通知添加操作按钮的 API。
您可以在此处向 firebase 库请求新功能: https://firebase.google.com/support/contact/bugs-features/
现在您可以做的是通过server-side API 发送带有自定义有效负载的data-message
然后,您可以在 onMessageReceived() 中接收该有效负载并生成您的自定义通知。
【讨论】:
因此,为了在应用程序处于后台时自定义通知,正如 Diego 所提到的,当前唯一的方法是自己创建通知。将“data”键添加到通知有效负载,导致onMessageReceived() 回调,您可以在其上创建任何通知和通知。
问题是,我尝试从 Firebase 控制台发送通知,而不是从 API。在那里我无法正确添加数据键并捕获它。从 API 一切正常。
【讨论】:
假设您已经知道必须使用 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 或更高版本中受支持。
【讨论】: