我正在嘗試爲iOS設備設置可靠的推送通知,並且正在尋找關於使用Google雲消息傳遞的建議方法的指導。我的應用程序是一個消息應用程序,但可能適用於其他類型的應用程序。如何使用GCM實現向iOS的可靠交付?
目前,我通過HTTP連接服務器使用GCM,並且發現如果iOS設備丟失服務或關閉,並非所有消息都會傳遞。我相信這是預期的表現,這是因爲GCM使用Apple的APNS,並不保證傳遞,並且可悲的是每個應用只能在隊列中保留最多一個通知。
我希望(希望?),GCM將保持自己的隊列來解決這個問題。也許它確實存在,我只是做得不對?
其他的可能性我遇到:
- Non-collapsible messages。不幸的是,這些文檔讓我很困惑,我是否可以用它來實現我所需要的。
- The delivery_receipt_requested flag。這至少可以(雖然增加了我的複雜性)用來確定消息是否到達。我看到它需要XMPP。但是,如果我在具有多個registration_ids的單個HTTP請求上設置標誌,那麼可能會返回多個XMPP響應?我願意切換到使用XMPP。如果這是推薦的路徑,那麼對於如何實現這一點有什麼建議?此外,這些交付收據是否可靠?
任何幫助將不勝感激!提前致謝!!
使用Google雲連接服務器(XMPP)delivery_receipt_requested標誌可以實現同樣的(半成品)解決方案嗎?它看起來像Google建議在'application:didReceiveRemoteNotification:fetchCompletionHandler:'爲了實現這個目的而將'[[GCMService sharedInstance] appDidReceiveMessage:userInfo]'行? –
它看起來像,但我只是短暫的一瞥。由於我上面提到的原因,請確保您知道這不是100%可靠的 –