0

我們認爲默認情況下Android的推送通知是靜默通知,並且必須是以編程方式在屏幕上引發通知的開發人員。或者推送通知在默認情況下不是默認的?Android靜默推送通知

今天,我們的工作使用,我們的應用從GCM服務器收到此JSON結構。

{ 
    "data": 
     { 
       「Type」 : 「2」, 
       「_dId」 : 「3718829」, 
       「_mId」 : 「9924012」, 
       「_msg」 : 「HOLA JVE」, 
       「collapse_key」 : 「9924012」 
      },          
    "to" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx" 
} 

此結構是否適用於靜默通知或存在不同的通知? 我們真的很迷戀這個話題。關注此問題,任何人有一個Android推送通知的JSON結構消息標題標籤?

其他問題:當一個無聲通知顯示給用戶?當用戶打開應用程序或僅當用戶解鎖手機時?

回答

1

在Android上,與iOS不同,該應用程序負責創建並顯示推送通知。所以是的,你可以將它們視爲默認默認,儘管你不完全在Android上有這個概念。

我通常做的是,如果沒有應顯示的通知,添加一個silent場。例如:

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

然後你就可以用無聲的字段,以顯示或不根據if聲明顯示通知。

1

或者推送通知在默認情況下是不安靜的?

有一個通知的是Android接收兩種方式,要麼是通知托盤,或者你自己處理的onMessageReceived()根據您使用(NotificationData)的有效載荷。

從您的詢問(靜音推送通知),我猜你會喜歡後者,因爲你可以自己處理它。根據GCM Payload docs

當您希望GCM代表您的客戶端應用程序處理顯示通知時使用通知。當您希望您的應用程序來處理顯示或處理您的Android客戶端應用程序消息使用數據電文,..

所以您目前正在使用的是現在的東西,(一data有效載荷)應罰款。但是,如果你有notification並在有效載荷data,你將不得不考慮您的應用程序的狀態。參照該FCM docs,對於data有效載荷:

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

..anyone具有消息和標題標記一個Android推送通知的JSON結構?

如在我上面鏈接的文檔還提到:

數據消息僅具有自定義鍵/值對。

所以我認爲它是安全的,你只需使用按鍵,只要它不是一個保留字,如本docs提到:

的關鍵不應該是保留字(「來自」或以「google」或「gcm」開頭的任何單詞)。不要使用此表中定義的任何單詞(如collapse_key)。


當無聲通知顯示給用戶?當用戶打開應用程序或僅當用戶解鎖手機時?

我想我上面幾乎涵蓋提到這個部分(見表)。