我遇到了FCM的问题,正如Firebase小组记录的那样:
click_action:表示与用户点击通知相关联的操作。设置此选项后,当用户单击通知时,将启动具有匹配意图过滤器的活动。
我知道它已被讨论过,但根据我的理解,这应该可以通过我从文档中理解的firebase控制台实现。它没有说它的数据消息,它清楚地说它是一个通知消息的字段,据我所知,这些是Firebase控制台发送的。
任何人都可以澄清这一点。 谢谢!
答案 0 :(得分:3)
到目前为止,控制台似乎不支持click_action。在Firebase控制台中编写通知时,您必须使用API来触发通知或尝试通过高级部分中的自定义数据字段传递click_action参数(到目前为止我还没有尝试过,但可能有效)。
答案 1 :(得分:3)
click_action目前无法通过Firebase控制台使用。
您说控制台发送通知消息是正确的,但它不允许您设置通知消息的click_action字段。要使用click_action,您必须使用REST API发送通知消息,其中所有通知消息字段都可用。
请注意,通过控制台添加的自定义数据将成为通知消息附带的数据有效内容中的键/值对。示例结构:
{
"to": <topic>,
"notification": {
<notification payload>
},
"data": {
<data payload, console custom data key/value pairs go here>
}
}
因此click_action是通知有效负载的一部分,但您必须使用REST API来使用它。我理解这一点并不清楚,我会研究可能的文档更新,以使其更清晰。
答案 2 :(得分:0)
您可以使用以下休息服务片段从RestClient(Postman)发送推送消息
Method : POST
URL: https://fcm.googleapis.com/fcm/send
Header:
Authorization : key=<FCM SERVER LEGACY KEY>
Content-Type: application/json
Body:
{
"notification": {
"title": "Firebase notification",
"message": "I am firebase notification. you can customise me. enjoy",
"click_action": "OPEN_ACTIVITY",
"sound":"default",
}
,
"to": "<Your device FCM Token - Getting it from the FirebaseInstanceIdService>"
}
在您的Manifest文件中 - 包含Intent过滤器以匹配Click_action值: 例如:
<activity
android:name=".ui.NotificationActivity"
>
<intent-filter>
<action android:name="OPEN_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>