在我的应用中成功实现了推送通知相关的基础并且运行良好。 但是当用户成功注销并使用新用户登录/注册时遇到问题没有得到通知。
YES!此问题适用于DeviceToken
。
unregisterForRemoteNotifications
,但不再使用iOS 10.并且可能不是那样设置的好主意。如果我们可以获得新的设备令牌,那么问题将被重新分配,但可能无法实现。
注意:通过帮助后端方面可能我们可以解决但建议我更好的方式。如果可能的话,我们很酷。
那么我可以为第二个用户做些什么呢?
答案 0 :(得分:0)
首先,您应该在
中写下通知注册码- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
方法。然后将该令牌保存在某处,例如在用户默认值
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
NSString *token; //extract from devToken
[[NSUserDefaults standardUserDefaults] setObject:token forKey:@"device_token"];
}
现在成功登录后,将此令牌发送到后端服务器。同样在注销时,在注销请求或其他内容中将相同的令牌发送到后端,并从后端系统取消注册此令牌。
答案 1 :(得分:0)
didRegisterForRemoteNotificationsWithDeviceToken一次。您可以像Rahul建议的那样坚持令牌。但是,不要在didRegisterForRemoteNotificationsWithDeviceToken()中读取此值,而是在用户登录后调用的方法中读取它。如果该值存在,请将此令牌发送到您的服务器。您的服务器应删除与先前用户关联的令牌,并将此令牌分配给新用户。从Apple服务器/设备的角度来看,用户未与设备令牌相关联。因此,要么在新用户登录后调用api,要么在服务器端出现令牌映射问题。
答案 2 :(得分:0)
当注销时调用一个将清除该特定用户的设备令牌的Web服务时,您可以做一件事,因此当用户再次注册时,它将注册设备令牌并在注销时将从数据库中清除设备令牌