2016-07-07 12 views
0

フォームアプリではGoogle Cloud Messagingを使用しています。 Android側では、更新を行ったときにアプリが登録解除されました。アップデート後にユーザーがアプリを開くことは保証できないため、このケースを処理する必要がありました。Google Cloud Messaging用にiOSでアプリのアップデートを処理する必要はありますか?

これがiOSの問題になるかどうか判断できません。 GCMがiOS上の更新された/置き換えられたアプリケーションをよりうまく処理するかどうかは誰にも分かりますが、余分なコードは必要ありません。 Keeping the Registration State in Syncで述べたように

答えて

0

登録トークンの潜在的な悪意の再利用からクライアントアプリケーションとアプリケーションサーバーを保護するために、あなたが定期的にサーバからトークンリフレッシュを開始する必要があります。サーバー側からGCM登録トークンの更新が開始されると、クライアントアプリケーションはGCM登録クライアント/サーバーハンドシェイクでtokenRefreshedメッセージを処理する必要があります。 iOS用

、それがあることHandle refreshed tokensで述べた:

は、登録トークンがリフレッシュされた場合に対処するには、GGLInstanceIDDelegateプロトコルは、システムがトークンが必要と判断したときに呼び出されonTokenRefreshメソッドを宣言しますリフレッシュする。

サンプルコード:

- (void)onTokenRefresh { 
    // A rotation of the registration tokens is happening, so the app needs to request a new token. 
    NSLog(@"The GCM registration token needs to be changed."); 
    [[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID 
                 scope:kGGLInstanceIDScopeGCM 
                options:_registrationOptions 
                handler:_registrationHandler]; 
} 
AppDelegate.m 

さらに、トークン処理するようにすると、クライアントアプリがなければならないリフレッシュ:

  1. GGLInstanceIDDelegateプロトコルを採用しているクラスを宣言。
  2. delegateプロパティを使用して、GGLInstanceIDConfigにそのクラスをデリゲートとして設定します。

特定のドキュメントに役立つ参考資料があります。

これ以外にも、このSO post-Why re-register to gcm when application gets updatedでは、トークンのリフレッシュが必要な理由も説明されています。

+0

答えに感謝します。私の理解を助けてください:アプリケーションが更新されたときにonTokenRefreshが起動しますか?または、サーバー側から発行された定期的な更新が状況を緩和することを提案していますか? –

関連する問題