3

私はこのような状況にあり、アプリにログインし、デバイス トークンをサーバーに送信し、プッシュ通知を取得しています。消費者がアプリからログアウトした場合、サーバーにリクエストを送信していると、プッシュ通知が届きません。ユーザーがログイン後にアプリをアンインストールすると、プッシュ通知を停止するリクエストをサーバーに送信できず、アプリを再度インストールしましたが、ログインしなかったため、自動的にプッシュ通知が届きます。

だから私の問題は、ユーザーがアプリにログインしなかったときにプッシュ通知を停止する方法です

4

3 に答える 3

0

私はこの状況が好きです...私の論理をチェックしてください。

あなたが持っている最初の重要なことは、アプリがアンインストールされると、そのデータベースも消えるということです. これがコツです。

==>1 から始まる参照番号を維持する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//get value from database,increment  by 1
//sync with server
}

アプリが起動するたびに、参照番号もインクリメントする必要があります。サーバー側でもこの参照番号を追跡する必要があります。

2 番目のシナリオ (つまり、直面している問題) は、アプリが再インストールされたときです。すべてのデータベースが自動的に消去されます。==>これがトリックです

次回データベースから参照番号を使用すると、1になります。

サーバー側と比較してみましょう。

アプリが再インストールされた後の 2 番目のシナリオの後、参照番号は現在維持されているものよりも少なくなります ( 1 < 現在維持されている参照番号 @server )。これは、アプリが再インストールされ、認証まで待機する必要があることをサーバーに知らせるための条件です。

そのため、ユーザーがログインするまで現在のデバイスの通知をサーバーに許可しないようにします。ログインが成功した後、すべてのデータベースを更新し、サーバーが通知を送信できるようにします。

于 2013-08-16T11:19:03.300 に答える