0

我有一个应用程序,用户可以在其中查看各种事件。如果他们签到活动,将在活动开始前 24 小时设置本地通知以提醒用户。我的问题是,我有setApplicationIconBadgeNumber应用程序,我将它设置为当时的徽章编号,加一。问题是说有两个事件同时发生,徽章编号应该是 2 而不是 1,我如何告诉 iOS 适当地设置徽章编号?由于这都是本地通知并且发生在特定时间,因此很难在代码中跟踪......

4

1 回答 1

0

我同意很难在您的代码中跟踪,特别是因为使用本地通知,当这一切发生时,您的代码可能没有机会实际执行。似乎 API 中的疏忽可以通过特殊的“增加徽章编号”事件来修复。

一种解决方案是:每次创建新UILocalNotification通知时,查看所有现有通知的列表,并找出每个通知应具有的正确徽章编号(例如,基于每个通知的 fireDate)。

因此,使用UIApplication'sscheduledLocalNotifications来获取现有应用程序的数组。根据需要对它们进行排序以找出每个对象的正确徽章编号,然后使用正确的徽章编号更新每个对象。将(修改的)数组设置回scheduledLocalNotifications属性以注册更新的值。

每当一些不相关的外部事件改变徽章计数器时,做同样的事情,我认为 - 虽然它不漂亮 - 你应该有一个可靠的黑客。

于 2012-11-06T01:29:12.673 回答