我有一个应用程序,用户可以在其中查看各种事件。如果他们检查了该事件,将在事件发生前24小时设置本地通知以提醒用户。我的问题是,我有应用程序的setApplicationIconBadgeNumber
,我将其设置为当时的徽章编号,加上一个。问题是有两个同时发生的事件,徽章编号应该是2而不是1,如何告诉iOS正确设置徽章编号?由于这是所有本地通知并且在特定时间发生,因此很难在代码中跟踪...
答案 0 :(得分:0)
我同意很难跟踪你的代码,特别是因为本地通知你的代码可能没有机会在这一切都发生时实际执行。似乎是API中的疏忽,可以通过特殊的“增量徽章编号”事件进行修复。
一个解决方案是:每次创建新的UILocalNotification
时,请浏览所有现有通知的列表,并找出每个通知应具有的正确徽章编号(例如,基于fireDate的每个)。
因此,使用UIApplication
的{{1}}来获取现有应用程序的数组。根据需要对它们进行排序,以找出每个对象的正确徽章编号,然后使用正确的徽章编号更新每个对象。将(已修改的)数组设置为scheduledLocalNotifications
属性以注册更新的值。
每当一些不相关的外部事件改变徽章计数器时,做同样的事情,我认为 - 虽然它不漂亮 - 你应该有一个可靠的黑客。