2012-10-26 195 views
0

我有一個應用程序,用戶可以在其中檢查各種事件。如果他們檢查事件,會在事件發生前24小時進行本地通知設置,以提醒用戶。我的問題是,我有應用程序的setApplicationIconBadgeNumber,我將它設置爲當時的徽章號碼,再加上一個。問題是,有兩個事件同時發生,徽章號碼應該是2而不是1,我如何告訴iOS適當地設置徽章號碼?由於這是所有本地通知併發生在特定時間,因此難以在代碼中跟蹤...本地推送通知徽章號碼

回答

0

我同意在代碼中很難跟蹤,特別是因爲使用本地通知代碼可能沒有代碼當這一切都發生時,實際執行的機會。看起來像API中的一個疏忽,可能已通過特殊的「增量徽章編號」事件得到解決。

一種解決方法是:每次創建新的UILocalNotification時,都要查看所有現有通知的列表,並確定它們每個應具有哪些作爲正確的徽章編號(例如,基於每個通知的fireDate)。

因此,使用UIApplicationscheduledLocalNotifications來獲取現有應用程序的數組。根據需要對它們進行排序,以找出每個標識的正確標識號,然後使用正確的標識號更新每個對象。將(修改的)數組設置回scheduledLocalNotifications屬性以註冊更新的值。

只要一些無關的外部事件改變了徽章計數器,就做同樣的事情,我認爲 - 雖然它不是很漂亮 - 你應該有一個可靠的黑客。

+0

是的,這是唯一的方法來做到這一點。不幸的是效率很低。 – KVISH