当前,我有一个GET
方法,当用户离线注销时,该方法会取消注册推送通知。我将用户的设备 token 和API密钥发送到后端,这将注销用户并禁用推送通知。这很好用,但是有一个问题。如果用户离线注销,则将无法使用。
我想到的唯一解决方案是保存API密钥和设备 token ,然后等到用户重新联机。然后,我将发送API请求。不知道这种解决方案有多好,但是我想出的唯一解决方案可以起作用。
编辑:我最大的担忧是脱机注销时注销注册通知,而我在StackOverflow上还没有谈论过。是的,我可以在用户注销时注销注册推送通知,但在他们离线时不能注销。
编辑2:通过注销,我的意思是让服务器知道不发送推送通知。
最佳答案
除了您在问题中所描述的以外,我看不到其他任何方式。我还要做的就是调用UIApplication.shared.unregisterForRemoteNotifications()
。这将停止将通知推送到已注销用户的电话,但是而不是会向您的服务器警告注销。苹果在其文档中指出,调用此方法here后,您可以重新注册通知。
当另一个用户登录时,您需要重新注册推送通知,并将设备 token 链接到他们的帐户。