代码之家  ›  专栏  ›  技术社区  ›  Jeremy Mullin

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

  •  2
  • Jeremy Mullin  · 技术社区  · 14 年前

    我试图理解uilocalnotification的applicationBinbadge属性。我只能设置一个显式的标记值,不能指定我只希望它在通知触发时递增。

    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 回复  |  直到 13 年前
        1
  •  4
  •   Simon    14 年前

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

    如果用户在通知1之后但在通知2之前启动了应用程序,并去掉了第一个“1”标记,则可以重新分配所有剩余通知的标记属性。这比直接做一个+=1更重要,但除非有人有更好的想法,否则我认为这是做这件事的方法。

        2
  •  1
  •   CSheldrick    13 年前

    查看我为uilocalnotification创建的类别: GitHub UILocalNotification

        3
  •  0
  •   junjie Peter    14 年前

    我有理由相信applicationBinbadGenumber的实现是错误的,或者至少与文档中描述的不一致。

    我已经在提交了一个错误报告/增强 http://bugreport.apple.com/

    你可以看看我的报告存档在开放雷达: http://openradar.appspot.com/radar?id=767401

    同时,我也求助于类似的黑客来实现这个简单的行为。

    根据Instapaper的开发者Marco的说法,苹果将增强和功能请求放在首位,这在一定程度上取决于有多少开发者请求它们。

    如果这项功能对您很重要,我建议您也提交一份报告。