2016-06-15 19 views
0

pubnubでプッシュ通知を実装しました。私はそれに次の問題があります。アプリケーションをアンインストールした直後に、もう一度インストールすると、アプリケーションはgcmに登録せずにプッシュ通知を受信して​​います。 gcmの登録を解除するとuninstalが呼び出されないので、gcmサーバはまだ2番目の登録時にデバイス登録IDを持っているからです。ユーザーがアプリケーションをアンインストールしたときにプッシュ通知から登録解除

+0

*アンインストール時にgcmの登録を解除しない* - アプリを削除/アンインストールしたときにアプリコードが実行されない。アプリを再インストールするときに新しいGCM登録トークンを取得していますか?そうであれば、古いGCMトークンはGCMサービスによって無効にされ、PubNubは無効なトークン*通知を取得し、そのトークンに関連付けられたチャネルを削除します。 iOSでは、キーチェーンを使用してアプリのインストール全体に存続することができます。Androidにも同じメカニズムがあるのか​​どうかはわかりませんが、私は尋ねます。 –

答えて

1

私はそれが可能だとは思わない、見た目here

を与える。しかし、あなたがログインしている必要がありアプリのユーザーであれば、この予期しない動作を回避するために、いくつかのロジックを作ることができる。あなたは、サーバからのプッシュ通知を送信すると、ユーザーを識別するパラメータ(たとえば、userId)を送信する必要があります。アプリが通知を受け取ったら、受け取った値をローカル値と比較してください(このローカル値はアンインストール時に失われます)。一致しない場合は、通知ビルダが通知を表示しないようにしてください。

ユーザーをローカルで識別するためのものがない場合は、プッシュ登録時にSharedPreferencesのブール値をtrueに設定できます。このブール値がfalseの場合、通知を表示しません。

+1

通知を表示する前に、クライアント側でドブルチェックを実行することをお勧めします。 – htafoya

0

private int nStatus = 0とし、SharedDataで1の値を与え、次に起動アプリで1の場合は値が1または0であるかどうかを確認することができます。あなたがアプリを削除するとSharedDataも削除されるので、

0

アプリの開始時に、最初のポイントで登録をやり直してください。最後のものは上書きされ、gcmは最後のgcm idにプッシュを送りません。

+0

ありがとう、しかし、うまくいっていない、プッシュ通知はまだ来ている – user3584307

関連する問題