iOS:徽章计数器与通知中心

Posted

技术标签:

【中文标题】iOS:徽章计数器与通知中心【英文标题】:iOS: badge counter vs. Notification center 【发布时间】:2013-01-02 11:43:04 【问题描述】:

我对通知中心和应用程序徽章计数器有点(很多)困惑。我设计了一个 ios 待办事项应用程序,它使用本地通知来提醒用户计划提醒(他们在应用程序中设置)。该应用程序还使用图标批处理计数器来显示“今天”到期的任务数。

在设置提醒通知正确显示在通知中心的时间。但是,一旦打开应用程序,通知就会从通知中心清除。这个想法是通知在通知中心保持可用,直到用户清除它们。

我已经和我的开发人员讨论过这个问题,他说只有在我们不使用图标批处理计数器时才能将通知保存在 NC 中。这对我来说似乎很不合逻辑,因为图标批处理计数器显示“今天”到期的任务数,而通知中心显示的通知是用户设置的警报。

希望你们能在这里提供帮助....谢谢!

【问题讨论】:

我自己并没有对通知中心做太多事情,但我同意这似乎有点不合逻辑,但我不会抹黑它,因为 Apple 总是在做这样疯狂的事情。 它太糟糕了,我们不能对 cme​​ts 投反对票.. :( 您可能误解了通知的概念。通知只是“发生了一些事情,请打开应用程序”。当您打开应用程序时,无需保留通知。 我知道通知的概念,我只是希望它们对用户保持可用:-) 【参考方案1】:

应用程序可以设置自己的徽章(计数器),独立于计划的通知。所以你当然可以设置任何你想显示今天任务的计数器:

NSUInteger tasksCount = 10; 
[UIApplication sharedApplication].applicationIconBadgeNumber = tasksCount;

谈到要在 NF 栏中显示的通知,它可由用户在设备的本机中配置:设置-> 通知-> 因此,如果您不能强制用户在 NF 栏中显示所有通知(假设一天 50 条)用户只配置了 5 个。

回到您的担忧,当应用程序启动时,来自 NF 栏的通知不会自动清除。您必须编写 CODE 才能将它们从应用程序中删除。

[[UIApplication sharedApplication] cancelAllLocalNotifications];

[[UIApplication sharedApplication] cancelLocalNotification:<notification object>];

【讨论】:

谢谢!我会将其传递给我的开发人员。

以上是关于iOS:徽章计数器与通知中心的主要内容,如果未能解决你的问题,请参考以下文章

ios - 应用程序关闭时本地通知不更新徽章编号

如何在保留通知中心的同时清除徽章编号

为啥通知会自动从 iOS 通知中心移除?

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

应用打开后从通知中心移除推送

如何在 iOS 中清除推送通知徽章计数?