我的应用向用户发送推送通知。它包括一个设置,供用户指定她希望收到通知的时间。推送通知设置的策略
当应用程序第一次打开(并接受推送通知)时,我使用用户的推送令牌和默认时间设置向我的服务器写入记录。无论何时更改时间设置,我都会同样更新设置。
就像一个很好的APNS公民一样,我还会每晚检查已删除应用或禁用推送通知的用户的过期令牌。我从我的数据库中删除这些令牌。这是我的问题。
如果用户从设置中禁用通知,重新打开我的应用程序,并改变了“时间”的设置,我继续写,因为以前一样设置到我的服务器。我的应用程序不知道用户以前关闭了通知。用户将不会收到通知,因为APNS会拒绝它们,但我仍然会将它们错误地发送到推送服务器。有没有什么方法让应用程序知道推送被禁用,因此不要将设置发送到我的服务器(甚至更好,允许我隐藏设置UI,而是显示一条消息告诉用户推送被禁用)?或者我可以如何处理呢?
在第一天,用户安装我的应用程序,我的服务器收到令牌。在第二天,她禁用了设置的推送 - 晚上晚些时候,我收到了过期令牌的通知,并将其从我的数据库中删除。在第三天,她重新启用设置。我没有收到任何通知(因为我的应用程序甚至没有打开),用户也不会收到她期待的通知。我能做些什么吗?
谢谢。我去了以上的修改版本。在每次尝试上传设置之前,我都会检查是否禁用了推送,如果是,则拒绝推送。这真的是一个保障 - 虽然我关闭了推送时禁用了设置界面。在启动(和前景)时,我按照建议上传当前设置。我不需要使用这个过程软删除令牌,因为我不允许在未启用推送的情况下修改设置。 –