方案:我有第三方應用程序服務器,gcm http連接服務器和用於推送通知的Android應用程序設置。當用戶卸載應用程序時,我可以通過發送他們的(不再有效)註冊ID推送通知並處理從gcm連接服務器返回的"NotRegistered"
錯誤從我的第三方服務器中刪除它們。Android Gcm取消註冊用戶訂閱應用程序卸載時的主題
但是,當您向訂閱「主題」的用戶發送推送通知時,這種類似的方法似乎不起作用,因爲此處gcm連接服務器僅返回帶有"message_id"
的json對象。是
我在第三方服務器數據庫表中的顯着列如下:
| gcmRegistrationID (string) | subscribedToNotificationTopic (boolean) |
有誰知道如何識別先前在subscribedToNotificationTopic
列設置true
,然後卸載應用程序用戶?
我對如何解決這個問題有一個想法,但它似乎有點混亂。
每隔一段時間,而不是僅向主題發送推送通知,例如,
{ "to" : "/topics/global", ... }
向訂閱該主題的用戶的註冊ID發送推送通知,例如,
{ "registration_ids" : {list of registration ids}, ... }
這樣我就可以檢索和處理任何
"NotRegistered"
錯誤。
然而,這個問題是,多播消息有1000個用戶的限制,所以我必須發送一個消息爲每千個。
這似乎是不好的做法(尤其是如果涉及多個主題),但也許這是唯一的方法?
(額外標籤:主題訊息,發佈訂閱,取消註冊,谷歌雲通訊)
nPn,真的很感謝你的回答。我確實考慮過自定義投票,但我希望會有其他事情。至於爲什麼我需要知道,它真的歸結爲規格和效率。 –