2015-08-25 119 views
3

我正在使用GCM向Android和IOS設備發送通知。當應用程序ios關機時,GCM不發送通知

在IOS上,通知在應用程序處於活動狀態或在後臺運行時收到。

但是,當應用程序關閉時,不會收到通知。 我通過直接聯繫APNS進行測試,並收到消息。所以設備上的配置似乎正常。

這裏是一個發送給GCM的消息的示例:

{"notification":{ 
    "badge":"4", 
    "body":"Test body", 
    "sound":"default", 
    "title":"Test title" 
}, 
"collapse_key": "collapse_1", 
"message_id": "1000003", 
"content_available":true, 
"to": "GCM TOKEN FOR DEVICE" 
} 

被正確地接收該消息時,應用程序在背景而不是當該應用被關閉。

我發送了應該發送到APNS,直接到APNS假想的消息:

{"aps":{"alert":{"title":"Title","body":"Body"},"badge":5, 
"sound":"default", "content-available":1}} 

且設備會收到此通知。

我錯過了什麼?是否有授權的GCM發送給APNS的特定配置?

非常感謝,因爲我卡住了。

Michael

+2

的可能的複製[iOS應用程式的GCM支持時,應用程序在後臺或殺死(HTTP://計算器。COM /問題/ 30883607/GCM支持換IOS-應用時,應用程序在背景,或殺死)。 – Mogsdad

回答

0

如果iOS應用程序被用戶從切換器中擊中,它將不會收到推送通知。這是蘋果有意實施的操作系統,所以沒有解決方法。

更多信息可以在這裏找到(需要登錄):https://devforums.apple.com/message/873265#873265

+0

我也試過這個用例。即使應用程序被手動終止,通知也會直接使用APNS顯示。 它看起來不再與IOS 8的情況。 我認爲它更涉及到GCM <-> APNS(因爲繞過GCM收到通知)。 –

1

前景推(即那些旨在針對用戶)總是顯示。如果應用程序已被殺死,後臺推送(即針對應用程序的推送)不會發送到應用程序。 您的推送有效載荷不知道它是什麼 - 它是一種混合物,它具有前景推送可能具有的主體/標題/聲音,但它也具有用於背景推送的內容。

決定您的推送應該是前臺還是後臺推送,然後相應地從您的有效負載中剔除不必要的部分。

也從iOS 8.1(或8.2我忘記了哪個)開始,如果應用程序處於前臺,或者如果它在後臺並且設備正在充電,背景推送將只會立即傳送到應用程序(注意,此包括通過USB連接到Mac)。 如果應用程序處於後臺並且未收取應用程序,則可能需要幾個小時才能將應用程序傳遞到應用程序。

0

我們在嘗試將消息發送到GCM主題時遇到了這個問題,所有的android設備都會正確地獲取消息,但不是應用程序被終止的ios消息。通過發送消息解決了問題數據通知對象。不要忘記把高優先!

樣品JSON:

{"to":"/topics/xxx", 
"collapse_key":"", 
"data":{"message":"topic notification"}, 
"notification":{"body":"topicotification"}, 
"time_to_live":3600, 
"content_available":true, 
"priority":"high"} 
相關問題