2010-07-08 38 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部分根據有多少開發人員要求他們來優先增強功能和功能請求。

如果此功能對您很重要,我強烈建議您提交一份報告。

相關問題