Firebase 消息传递 - 什么是“content_available”:true

Abh*_*hur 3 android firebase firebase-cloud-messaging

我看到了很多 firebase push 的例子,比如

{ 
  "to" : "egu9jGiMcew:APA91bFv2Rewdz.....KZZmEURvbq-aA2", 
  "data": { 
    "id": 19, 
    "title": "Title test", 
    "msg": "Text of the test", 
    "code": 2, 
    "infosUrl": "ttp://www.secondguide.tours", 
    "longitude": 5.5, 
    "latitude": 44.5, 
    "eventLocation": "nowhere", 
    "startDate": "24/07/2016", 
    "endDate": "25/07/2016", 
  }, 
  "delay_while_idle" : false, 
  "priority" : "high", 
  "content_available" : true 
} 
Run Code Online (Sandbox Code Playgroud)

我没有达到目的

"delay_while_idle" : false,    
"priority" : "high",   
"content_available" : true
Run Code Online (Sandbox Code Playgroud)

在这一点上,有人可以解释一下吗?

AL.*_*AL. 7

如果你先查看官方文档,你会看到相应的描述:

content_available- 在 iOS 上,使用此字段表示APNs 负载中的可用内容。当发送通知或消息并将此设置为 true 时,将唤醒不活动的客户端应用程序,并且消息通过 APNs 作为静默通知而不是通过 FCM 连接服务器发送。请注意,APN 中的静默通知不保证会被传递,并且可能取决于用户开启低功耗模式、强制退出应用程序等因素。在 Android 上,数据消息默认唤醒应用程序。在 Chrome 上,目前不支持。

您帖子的标题只是询问关于content_available,但只是为了涵盖其他两个,priority(也来自文档):

设置消息的优先级。有效值为“正常”和“高”。在 iOS 上,这些对应于 APNs 优先级 5 和 10。

默认情况下,通知消息以高优先级发送,数据消息以普通优先级发送。正常优先级可优化客户端应用程序的电池消耗,除非需要立即交付,否则应使用该优先级。对于具有正常优先级的消息,应用程序可能会以未指定的延迟接收消息。

当一条消息以高优先级发送时,它会立即发送,并且应用程序可以显示通知。

delay_while_idle 早已被弃用,所以我不会费心提供它的行为。