Android通知:通知和数据有效负载之间有何区别

时间:2019-04-17 23:07:03

标签: android firebase xamarin firebase-cloud-messaging

与我使用通知或数据的有效负载看起来相同

{"notification":{"body":"Notification Hub test notification"}}

我以为通知有效负载仍然可以接收通知,即使它已关闭而不是后台或前台。我尝试过,但是当应用程序处于非活动状态时似乎没有收到有效载荷。

似乎数据和通知我收到的结果相同

2 个答案:

答案 0 :(得分:1)

Firebase Cloud Messaging支持两种类型的消息,即通知消息和数据消息。它们之间的区别在于,使用数据消息时,您可以在消息中发送自己的数据元素,而使用通知消息时,则必须使用预定义的元素。

顾名思义,通知消息类型用于发送通知,该通知将在通知栏中显示为通知。 FCM自动处理通知消息,您的应用程序也可以对其进行处理和自定义。数据消息类型用于将数据发送到客户端。您的应用必须对其进行处理并采取进一步的措施。可发送给客户端的邮件大小限制为4kb。

JSON格式的通知消息

{"message":{"topic":"deals","notification":{"body":"View latest deals from top brands.","title":"Latest Deals"}}}

JSON格式的数据消息

{"message":{"topic":"deals","data":{"storeNAME":"Nordstorm","deal":"Get upto 50% off on Shoes","dealDesc":"Get upto 50% off on branded shoes.","expiry":"20180110","code":"NORDSH"}}}

JSON格式的通知和数据消息

{"message":{"topic":"deals","data":{"storeNAME":"Nordstorm","deal":"Get upto 50% off on Shoes","dealDesc":"Get upto 50% off on branded shoes.","expiry":"20180110","code":"NORDSH"},"notification":{"body":"View latest deals from top brands.","title":"Latest Deals"}}}

请注意,在数据消息中,数据元素下仅允许名称和值对,这意味着数据元素不能具有分层数据或JSON数组。

答案 1 :(得分:0)

当应用程序后台运行时,通知有效负载将由OS自动处理。数据有效载荷始终交付给您的应用程序代码。