[英]GCM(Google Cloud Messaging ) in iOS( notification and data payload.)
我有一個問題。對於iOS,是否可以在有效負載中同時發送“數據”和“通知”?當僅向GCM發送“通知”時,我收到通知。我的問題是,如果我想同時在iOS和android設備上進行更新,有效載荷應該是多少?
當前有效載荷:
{
"to":"/topics/testTopic",
"content_available":true,
"priority":"high",
"notification": {
"body":"Test Message",
"title":"test"
},
"data": {
"title": "Title.D Mixed JSON",
"body": "Content.D Mixed JSON",
"productId" : "1"
}
}
您的有效負載很好,沒有理由不應該獲得它。 但是兩者之間有些區別。 正式文檔中記錄了"notification"
和"data"
之間的區別: https : //developers.google.com/cloud-messaging/concept-options
當您希望GCM處理代表客戶端應用程序顯示的通知時,請使用通知。 當您希望您的應用在Android客戶端應用上處理顯示或處理消息時,或者在直接GCM連接時將消息發送到iOS設備時,請使用數據消息
因此,對於您要發送的混合消息,重要的是要知道您的應用程序是在后台還是在前台:
在后台時,應用程序會在通知托盤中接收通知有效載荷,並且僅在用戶點擊通知時處理數據有效載荷。 在前台時,您的應用會收到一個捆綁包,其中包含兩個有效負載。
不接收推送通知的另一個原因是您尚未分配傳遞優先級。 有normal
和high
兩種選擇。
高
高優先級。 GCM嘗試立即傳遞高優先級消息,從而允許GCM服務在可能的情況下喚醒處於睡眠狀態的設備並打開與您的應用服務器的網絡連接
正常
正常優先級。 這是郵件傳遞的默認優先級。 普通優先級消息不會在睡眠設備上打開網絡連接,並且可能會延遲傳遞消息以節省電池
嘗試在有效負載中的"notification"
之前設置"priority" : "high"
。
不允許重復“通知”和“數據”的內容,當用戶點擊通知時,您可以讀取“通知”中的數據,以下JSON應該可以使用。
{
"to":"/topics/testTopic",
"content_available":true,
"priority":"high",
"notification": {
"body":"Test Message",
"title":"test"
},
"data": {
"productId" : "1"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.