如果通知在脱机时发送,Android是否可以检索FCM通知
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果通知在脱机时发送,Android是否可以检索FCM通知相关的知识,希望对你有一定的参考价值。
我正在使用firebase云消息,我想知道是否可以向离线设备发送通知,然后在它上线后接收它。
客户端
我通过主题向虚拟设备发送通知(Nexus 5 API 27)我使用以下依赖项:
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.google.firebase:firebase-messaging:11.8.0'
服务器端
我有一个发送POST请求的Java服务器:
网址:https://fcm.googleapis.com/v1/projects/PROJECT_ID/messages:send
头
Authorization : Bearer <token OAuth2>
Content-Type : application/json
身体
{
"message": {
"topic":"topicName",
"data": {
"infoKey": "infoValue",
}
}
}
启动虚拟机后,我会快速收到通知。但是,如果我的虚拟设备关闭且我的服务器发送通知,则即使等待超过10毫秒,客户端也不会收到通知。这是正常的吗?我觉得我做错了什么,因为当我阅读文档时,通知应该存储,直到有人读取它为止:
https://firebase.google.com/docs/cloud-messaging/concept-options#ttl
有谁知道我犯了错误,或者我是否对FCM的功能过分了解?
谢谢。
这应该是正确的行为。当设备离线或打瞌睡时,它会在感觉需要或设备唤醒时立即发送。 https://firebase.google.com/docs/cloud-messaging/concept-options#lifetime
您可以尝试使用优先级,以便在设备开启后更快地发送通知,如果您需要尽快发送。
你很好。
但是现在谷歌不会在用户的基础上提供任何历史记录功能。
我可以建议一个简单的方法来解决这个问题。您可以记录您在服务器端发送给用户的通知。在用户端,每当收到通知时,保持另一条记录。
每当用户上线时,只记录两个记录并使用restful service获取丢失的记录。您可以使用各种参数来记录时间戳,令牌等记录。
希望这可以帮助。
以上是关于如果通知在脱机时发送,Android是否可以检索FCM通知的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不构建任何应用程序的情况下向 Android 发送推送通知?