アプリを初めてインストールしてプッシュ通知に登録する場合、アプリはアラートを受信するかどうかを尋ねます。これは、アプリを削除した後でも、設定に永久に保存されています。
基本的に、トークンを保存するには、次のようにします。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *token = [[[deviceToken description]
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]
stringByReplacingOccurrencesOfString:@" " withString:@""];
[[NSUserDefaults standardUserDefaults] setValue:token forKey:kDeviceTokenKey];
}
ただし、問題は、アプリがデバイスから削除されると NSUserDefaults がワイプされますが、プッシュ設定はワイプされないことです。したがって、再度要求することはありません。したがって、デリゲート メソッドを再度呼び出さないでください。したがって、トークンはもうありませんが、プッシュはまだアクティブになっています。
説明されているシナリオでトークンを取り戻すチャンスはありますか?