如何在 iphone 中删除单个远程通知

Posted

技术标签:

【中文标题】如何在 iphone 中删除单个远程通知【英文标题】:How to remove Single Remote notification in iphone 【发布时间】:2013-08-10 06:32:01 【问题描述】:

我正在开发支持服务器端推送分数通知和获胜通知、用户游戏请求的游戏。

通知读取和响应存储到设备端一切正常。但是当通知推送到通知中心时。当我当时点击通知时,它会使用以下代码从通知中心删除所有推送通知:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];

但我想从通知中心删除选定的远程通知。

有什么方法可以删除单个远程通知。请帮助我。

提前致谢。

【问题讨论】:

【参考方案1】:

取消本地通知

如果您有办法获得对要取消的特定 UILocalNotification 实例的引用,可以在其上调用cancelLocalNotification:

尝试遍历所有计划的通知,以便通过以下方式获取该引用:

NSArray *scheduledNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];

取消远程通知

这完全取决于服务器,如果没有服务器端适当的 API 就无法完成。

【讨论】:

我在以下方法中使用上面的代码: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 但它给我的数组值为null。 我认为您混淆了两个完全不同的事情:您不能取消计划的远程推送通知(它计划在服务器上) - 您只能取消本地通知。 当从服务器端触发通知时,如果当时有超过 1 个单个应用程序的通知,它会在我们的设备通知中心触发。当我当时选择单个通知时,我需要从通知中心删除所选通知。 哦,好的,抱歉。我误解了这个问题。

以上是关于如何在 iphone 中删除单个远程通知的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Iphone 的远程通知传递给 Watch OS?

iPhone 重新上线后如何接收远程通知?

如何在没有证书的情况下设置远程通知? (注册护士)

如何在通知中心删除特定的远程通知

无法使用 swift 在 iPhone 6 中注册远程通知

如何使用 UserNotifications 框架从通知中心删除远程通知