2016-03-28 64 views
0

我被Google Cloud Messaging Service.(GCM).如何處理在iOS上刷新Google Cloud Messaging的註冊ID?

我一直在做Android應用程序與GCM發展與通知iOS應用程序,從而很願意做的GCM通知(不使用APNS)的iOS應用。 有關APNS令牌和GCM註冊ID的問題。

問題#1 每當iOS應用程序啓動時,它會檢查APNS令牌在更改時是否更改或更新。當APNS更改時,iOS應用程序請求「新的GCM註冊ID」?

問題#2 如果問題#1是正確的,我應該發送新的GCM註冊ID到我的推送服務器嗎?

問題3 即使APNS令牌尚未更新,GCM註冊ID是否會更改?

回答

1

問題#1每次iOS應用程序啓動時,它會檢查APNS令牌在更改時是否更改或更新。當APNS更改時,iOS應用程序請求「新的GCM註冊ID」?

根據此documentation,當從服務器端啓動GCM註冊令牌刷新時,客戶端應用程序必須處理具有GCM註冊客戶端/服務器握手的tokenRefreshed消息。

問題#2如果問題#1是正確的,我應該發送新的GCM註冊ID到我的推送服務器嗎?

設備令牌可以更改,因此您的應用需要在每次啓動時重新註冊,並將收到的令牌傳回給您的服務器。檢查這個相關的SO question

問題3即使APNS令牌根本沒有更新,GCM註冊ID是否會更改?

根據這個SO question,當令牌hs沒有被更新時,註冊ID不會改變。 「註冊ID更改的唯一已知原因是,如果應用程序在升級過程中收到一條消息,它會自動取消註冊的舊bug,直到此bug被修復爲止,應用程序在升級後仍然需要調用register(),到目前爲止註冊ID可能會在這種情況下改變。顯式調用unregister()通常也會更改註冊ID。「

+0

感謝您的回答。我在registrationHandler中添加了一些代碼來檢查註冊ID是否更改。我發現'onTokenRefresh()'也叫registrationHandler。如果我在iOS上使用GCM,使用您的問題我不需要再使用APNS令牌。我對嗎? @abielita –

+0

@JadeLee:「如果我在iOS上使用GCM,那麼你的問題就不再需要用APNS令牌來處理了,我是對的嗎?唔...不。您必須獲得APNS令牌才能註冊GCM,並且您必須處理對APNS令牌的更改並使用它向GCM重新註冊。 – user102008

+0

@ user102008:APNS令牌更改時不應用程序執行任何操作?在Google的GCM示例中,如果APNS令牌更改,我認爲該應用請求新的GCM註冊ID。否則,我應該在哪裏實施? –

相關問題