android – 如何在应用程序被杀时从Firebase向设备发送消息?

前端之家收集整理的这篇文章主要介绍了android – 如何在应用程序被杀时从Firebase向设备发送消息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Android app not receiving Firebase Notification when app is stopped from multi-task tray6个
我正在尝试熟悉Firebase通知.它工作正常,但我没有在应用程序未打开时从通知控制台接收消息.

我知道文档说:

if your app in foreground or background you can receive message in onMessageReceived method,otherwise user will receive notification in tray… click on it will open main activity with data inside intent

但即使应用程序关闭,有没有办法从通知控制台捕获每条消息?

====答案====

找到答案here

无法从通知控制台发送数据消息.

但是还有其他方法可以向设备发送通知,并且它们将被捕获在onMessageReceived中!

您可以使用终端(Mac或Linux)或Postman等服务在此链接上发送Post请求:https://fcm.googleapis.com/fcm/send

与下一个身体:

{
    "to": "/topics/your_topic_here","data": {
       "text":"text","text1":"text1",...
   }
}

你还需要添加2个标题

>授权 – key = your_server_key_here
> Content-Type – application / json

获取服务器密钥,可以在firebase控制台中找到它:您的项目 – >设置 – >项目设置 – >云消息传递 – >服务器密钥

解决方法

如果应用程序处于后台,则不会调用onMessageReceived()方法,或仅在通过Firebase控制台发送消息时才会终止该方法.

当应用程序未运行时,您仍会收到来自firebase控制台的通知.但是如果你想通过onMessageReceived()拦截数据,那么你将不得不创建一个自定义应用服务器,它只会将数据有效负载发送到fcm端点.简而言之,如果您想在这种情况下更有效地使用FCM,则必须创建一个应用服务器.

你可以看看这两个问题,讨论更多关于同样的问题,在第二个问题中,我还简要讨论了使用node.js和java servlet做同样的事情:

> Handle the data payload without user tapping on the notification?
> How to push notification to client when Firebase has a new entry?

如果这能为您提供一些信息,请告诉我.

猜你在找的Android相关文章