1

我有与FCM的问题,由火力地堡团队记载:火力地堡click_action不工作

click_action:表示与该通知用户点击相关的动作。设置此选项时,用户单击通知时将启动具有匹配意图过滤器的活动。

我知道已经讨论过了,但根据我的理解,这应该可以从我从文档中理解的Firebase控制台中实现。它并没有说它的数据消息清楚地表明它是通知消息领域,据我所知,这些是Firebase控制台发送的消息。

任何人都可以澄清这一点。 谢谢!

回答

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

目前控制台似乎不支持click_action。在编写Firebase控制台中的通知时,您必须使用API​​触发通知或尝试通过高级部分中的自定义数据字段传递click_action参数(我迄今为止尚未尝试此操作,但可能会起作用)。

+0

我已经尝试通过自定义数据发送该参数,但不会考虑从清单中的意图过滤器......我所能做的就是获取启动器活动中的意图并使用此参数重定向到相应的活动......但它是一个糟糕的解决方案 – Dieguinho

+0

但它是您从控制台获得的最好解决方案。控制台远非完美,现在有很多缺失的功能 – crysxd

0

您可以使用REST服务的下面的代码片段从RESTClient实现发送Push消息(邮差)

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>" 
} 

在您的清单文件 - 包括该意图过滤器来匹配Click_action值: 例:

<activity 
      android:name=".ui.NotificationActivity" 
      > 

     <intent-filter> 
      <action android:name="OPEN_ACTIVITY" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     </activity>