我正在尝试开发一个应用以通过用户帐户接收推送通知。
(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
注册成功后,deviceToken将链接到用户帐户。
有一种情况,当userA
完成注册并卸载应用程序时,该应用程序理想情况下不会收到来自APN的推送通知,但另一个用户B安装它而无需注册,使用相同的iPhone,iPhone将收到userA
的推送通知,因为deviceToken与之前的相同。
事实上,userB
不应该使用同一设备接收userA
推送通知。幸运的是,它只存在于IOS7,8中而不存在于iOS9中(iOS9在用户授予权限之前禁用了推送权限)
如何解决?感谢
答案 0 :(得分:3)
处理此问题的一种方法是:
1)用户登录设备后取消注册您的设备以进行远程通知。这样,即使应用服务器发送通知,也会确保下一组通知无法到达设备设备。
如何取消注册的示例代码(请参阅注销方法):
2)再次注册您的设备以进行远程通知,并将新令牌发送到应用服务器。对于额外检查,应用程序服务器将执行以下操作。
i)检查发送到应用服务器的设备令牌,如果它与任何其他用户链接(假设userA)重置该令牌。
ii)存储设备令牌并与当前用户链接(Say userB)。
希望这会有所帮助。