Android 安卓静默推送通知

Android 安卓静默推送通知,android,push-notification,google-cloud-messaging,android-notifications,firebase-cloud-messaging,Android,Push Notification,Google Cloud Messaging,Android Notifications,Firebase Cloud Messaging,我们认为Android的推送通知在默认情况下是静默通知,并且必须是以编程方式在屏幕上发出通知的开发人员。或者推送通知在默认情况下不是静默的 今天,我们使用我们的应用程序从GCM服务器接收的JSON结构进行工作 { "data": { “Type” : “2”, “_dId” : “3718829”, “_mId” : “9924012”, “_

我们认为Android的推送通知在默认情况下是静默通知,并且必须是以编程方式在屏幕上发出通知的开发人员。或者推送通知在默认情况下不是静默的

今天,我们使用我们的应用程序从GCM服务器接收的JSON结构进行工作

{ 
   "data": 
         {
               “Type” : “2”, 
               “_dId” : “3718829”, 
               “_mId” : “9924012”, 
               “_msg” : “HOLA JVE”, 
               “collapse_key” : “9924012”
          },                                       
   "to" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
此结构是否对静默通知有效,还是存在其他结构? 的确,我们在这个话题上迷失了方向。在这个问题之后,是否有人拥有带有消息和标题标记的Android推送通知的json结构


其他问题:当向用户显示静默通知时?当用户打开应用程序时,或者当用户解锁手机时?

在Android上,与iOS不同,应用程序负责创建和显示推送通知。所以,是的,你可以认为默认情况下它们是沉默的,尽管你在Android上并不完全有这个概念

我通常做的是,如果通知不应显示,则添加一个
静默
字段。例如:

 {
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
      "body" : "Will not show this message",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
      "silent": "true"
    }
  } 

然后,您可以根据
if
语句使用静默字段显示或不显示通知。

在Android上,与iOS不同,应用程序负责创建和显示推送通知。所以,是的,你可以认为默认情况下它们是沉默的,尽管你在Android上并不完全有这个概念

我通常做的是,如果通知不应显示,则添加一个
静默
字段。例如:

 {
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
      "body" : "Will not show this message",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
      "silent": "true"
    }
  } 
然后,您可以根据
if
语句使用静默字段来显示或不显示通知

或者推送通知在默认情况下不是静默的

在Android中接收通知有两种方式,一种是通知托盘,另一种是您自己在
onMessageReceived()
中处理通知,具体取决于您使用的有效负载(
notification
Data

根据您的询问(无声推送通知),我猜您更喜欢后者,因为您可以自己处理。根据:

当您希望GCM代表您的客户端应用程序处理显示通知时,请使用通知当您希望应用程序处理Android客户端应用程序上的显示或处理消息时,请使用数据消息

因此,您当前正在使用的(数据有效负载)应该可以。但是,如果你在你的有效载荷中有<强> > <>代码>通知< /代码>和<代码>数据< /代码>,你将不得不考虑你的应用程序的状态。参照此,对于
数据
有效载荷:

App state   Notification        Data                Both
Foreground  onMessageReceived   onMessageReceived   onMessageReceived
Background  System tray         onMessageReceived   Notification: system tray
                                                    Data: in extras of the intent.

…有谁拥有Android推送通知的json结构以及消息和标题标签吗

正如我在上面链接的文档中提到的:

数据消息只有自定义键/值对

因此,我认为只要不是保留字,就可以安全地使用按键,如本文所述:

关键字不应是保留字(“from”或任何以“google”或“gcm”开头的字)。不要使用此表中定义的任何单词(如collapse_key)


当向用户显示静默通知时?当用户打开应用程序时,还是仅当用户解锁手机时

我想我上面提到的几乎涵盖了这一部分(见表)

或者推送通知在默认情况下不是静默的

在Android中接收通知有两种方式,一种是通知托盘,另一种是您自己在
onMessageReceived()
中处理通知,具体取决于您使用的有效负载(
notification
Data

根据您的询问(无声推送通知),我猜您更喜欢后者,因为您可以自己处理。根据:

当您希望GCM代表您的客户端应用程序处理显示通知时,请使用通知当您希望应用程序处理Android客户端应用程序上的显示或处理消息时,请使用数据消息

因此,您当前正在使用的(数据有效负载)应该可以。但是,如果你在你的有效载荷中有<强> > <>代码>通知< /代码>和<代码>数据< /代码>,你将不得不考虑你的应用程序的状态。参照此,对于
数据
有效载荷:

App state   Notification        Data                Both
Foreground  onMessageReceived   onMessageReceived   onMessageReceived
Background  System tray         onMessageReceived   Notification: system tray
                                                    Data: in extras of the intent.

…有谁拥有Android推送通知的json结构以及消息和标题标签吗

正如我在上面链接的文档中提到的:

数据消息只有自定义键/值对

因此,我认为只要不是保留字,就可以安全地使用按键,如本文所述:

关键字不应是保留字(“from”或任何以“google”或“gcm”开头的字)。不要使用此表中定义的任何单词(如collapse_key)


当向用户显示静默通知时?当用户打开应用程序时,还是仅当用户解锁手机时

我想我上面提到的几乎涵盖了这一部分(见表)