在后台,应用会在通知托盘中收到通知有效负载,并且仅在用户点击通知时处理数据有效负载。
在没有用户点击通知的情况下,有没有办法处理数据有效负载?
答案 0 :(得分:1)
基于Handling Messages上的FCM文档:
if (!empty($_POST['key'])){
$delkey = $_POST['key'];
foreach ($_SESSION['image'] as $k => $v) {
if ($delkey == $v) {
$imgkey = array_search($v, $_SESSION['image']);
if($imgkey) unset($_SESSION['image'][$imgkey]);
}
}
}
仅通过点击通知不会专门处理。您可以在App state Notification Data Both
Foreground onMessageReceived onMessageReceived onMessageReceived
Background System tray onMessageReceived Notification: system tray
Data: in extras of the intent.
中处理它。非常确定点按动作还取决于你如何实现它。
如果您打算做其他事情,请提供更多详细信息。
答案 1 :(得分:0)
如果您希望在应用未运行时接收数据有效负载,则需要使用带有 http协议(在您的情况下)的自定义应用服务器只有数据有效负载 无通知并将数据发送到fcm端点,如下所示
{ "data": { "some_key" : "some_value",
"some_more_key" : "some_more_value" },
"registration_ids": ["device-token","device-token2"] }
或只是将数据从服务器发送到一个客户端
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Test",
"body" : "Your message here",
"Room" : "Some Test Room"
},
}
然后使用 POST ,您可以向设备发送下游消息,它将以您希望的方式运行。如果您想了解此类应用服务器的基本概念,请考虑以下事项:How to push notification to client when Firebase has a new entry?
我在这里发布了基本Java Servlet代码,并在firebase官方博客上发布了 node.js 代码。
希望它有所帮助。