2010-07-08 59 views
2

我想了解UILocalNotification的applicationIconBadge属性。我只能设置一个明确的徽章值,我不能指定我只是希望它在通知触发时增加。如何在多个本地通知触发时增加应用图标徽章?

http://developer.apple.com/iphone/library/documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009565-CH1-SW11

我试图做到以下几点:一是通报火灾,用户会忽略它,第二个通知火灾,用户忽略它。在这一点上,我希望徽章是2,但据我所知,没有任何方法可以处理通知触发,但是被忽略。我的didReceiveLocalNotification事件不会被调用。这意味着除了UILocalNotification.applicationIconBadge属性之外,没有任何方法可以操纵徽章号码,该属性没有“仅增加”功能。

回答

4

我能想到的一种方法是在内部维护计数,并在创建每个通知时为其分配正确的徽章属性。因此,如果您知道通知1会在通知2之前触发,请分配第一个1和第二个2.这将照顾您上述的问题。

如果用户在通知1之后但在通知2之前启动应用程序,并且摆脱了第一个'1'徽章,那么您可以重新分配所有剩余通知的徽章属性。它比直接+ = 1更多的工作,但除非别人有更好的主意,我认为这是做到这一点的方法。

+1

感谢您对Simon的建议。那么这只是本地通知设计中的一个疏忽?徽章属性在这个实现中似乎相当无用。 – 2010-07-08 18:23:11

+0

这可能只是使通知可用的最低API。我认为目前的实施为开发人员提供了对徽章的更多控制权,但我确实认为这可能会更难以使用。 – Simon 2010-07-08 21:42:00

+0

谢谢。感觉hokey,但我实现了你的解决方案,它正在工作(我得到所有通知的列表,删除所有通知,然后添加他们与升序徽章属性)。 – 2010-07-09 01:42:05

0

我有理由相信applicationIconBadgeNumber的实现是有问题的,或者至少不是根据它在文档中描述的做法。

我在http://bugreport.apple.com/

提交了错误报告/增强你可以看看我在打开雷达存档报告:http://openradar.appspot.com/radar?id=767401

同时,我也使出了类似的两轮牛车只是为了实现这个简单的行为。

根据Instapaper的开发人员Marco的说法,Apple部分根据有多少开发人员要求他们来优先增强功能和功能请求。

如果此功能对您很重要,我强烈建议您提交一份报告。

相关问题