当您第一次安装应用程序并想要注册推送通知时,应用程序会询问您是否要接收警报。这将永久保存在设置中,即使在删除应用程序后也是如此。
基本上,为了保存令牌,我们这样做:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *token = [[[deviceToken description]
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]
stringByReplacingOccurrencesOfString:@" " withString:@""];
[[NSUserDefaults standardUserDefaults] setValue:token forKey:kDeviceTokenKey];
}
但问题是,当应用程序从设备中删除时,NSUserDefaults 会被擦除,但推送设置不会。所以它不会再询问,因此不要再次调用委托方法,因此我不再拥有令牌,但推送仍然被激活。
在所描述的场景中是否有机会取回令牌?