如何在出现之前过滤ios推送通知

Posted

技术标签:

【中文标题】如何在出现之前过滤ios推送通知【英文标题】:How to filter ios push notifications before appear 【发布时间】:2015-12-11 08:56:54 【问题描述】:

退出应用后需要隐藏 ios 推送通知。当网络连接可用时,我可以通过向服务器发送注销消息来处理此问题。

但是如果用户在网络连接不可用时按下注销按钮,则无法将注销消息发送到服务器。如果应用程序正在运行,应用程序可以排队并发送注销消息。

但如果用户在网络连接不可用时按下注销按钮后退出应用程序,并重新连接到互联网,它仍然会收到通知。有什么方法可以处理这种情况吗?

【问题讨论】:

您可以使用静默通知,由您自己管理,决定是否显示。 【参考方案1】:

你可以使用

[[UIApplication sharedApplication]unregisterForRemoteNotifications];

按下退出按钮后。

【讨论】:

【参考方案2】:

SWIFT

func unregisterForRemoteNotifications()

目标-C

- (void)unregisterForRemoteNotifications

讨论 您应该仅在极少数情况下调用此方法,例如当应用程序的新版本不再支持远程通知时。用户可以通过设置应用程序的通知部分暂时阻止应用程序接收远程通知。通过此方法取消注册的应用程序始终可以重新注册。

您的服务器没有收到通知,只是当您调用该函数时,向您的服务器发送一个数据包并假设操作成功。您还应该在服务器上处理此类问题,强制使用户会话过期并从推送服务中注销他(假设您有适当的后端)

【讨论】:

以上是关于如何在出现之前过滤ios推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何检查用户之前是不是在 iOS 中查看过推送通知权限警报视图?

iOS 仅将某些推送通知过滤为徽章

如何在内部编码推送通知

iOS 11 中的推送通知

iOS 推送通知自定义警报

在 iOS13 中接收推送通知时如何自动增加通知徽章编号