当多个本地通知触发时,如何增加应用程序图标徽章?

时间:2010-07-08 04:09:08

标签: iphone cocoa-touch ios4

我正在尝试了解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属性之外,我无法操纵徽章编号,该属性没有“只是递增”功能。

3 个答案:

答案 0 :(得分:4)

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

如果用户在通知1之后但在通知2之前启动应用程序,并取消第一个“1”徽章,则可以为所有剩余通知重新分配徽章属性。这比做直+ = 1还要多,但除非别人有更好的想法,否则我认为这是做到这一点的方法。

答案 1 :(得分:1)

查看我为UILocalNotification制作的这个类别:GitHub UILocalNotification

答案 2 :(得分:0)

我有理由相信applicationIconBadgeNumber的实现是错误的,或者至少不是根据文档中描述的内容。

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

提交了错误报告/增强功能

您可以查看我在Open Radar中存档的报告:http://openradar.appspot.com/radar?id=767401

与此同时,我也采取了类似的行动来实现这种简单的行为。

根据Instapaper的开发人员Marco的说法,Apple优先考虑增强和功能请求,部分原因是有多少开发人员要求它们。

如果此功能对您很重要,我也建议您提交报告。