2013-02-16 85 views
0

在我的應用程序中我已經註冊了遠程通知。當用戶發佈一些內容時,每個用戶都會收到通知。我正在計算到達的通知數量並更新了圖標徽章編號。當通知到達時更改應用程序圖標徽章

例如,如果用戶收到3個通知,則徽章號碼必須變爲3,並且當用戶打開應用程序時,徽章號碼會回到0.但我不知道用哪種方法設置徽章。我曾經嘗試這樣做:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
application.applicationIconBadgeNumber = 2;  
// Handle Socialize notification at foreground 
[self handleNotification:userInfo]; 
} 

這樣做的問題是,徽章設置數量2當我真正打開應用程序(它帶到前臺),如果我收到通知,而不是當我收到通知。我該如何解決這個問題? 感謝您的幫助。

編輯:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"1"] intValue]; 
// Handle Socialize notification at foreground 
[self handleNotification:userInfo]; 
} 
+0

您是從服務器獲取badgecount還是在本地計數? – Exploring 2013-02-16 13:36:52

+0

本地計數 – user2014474 2013-02-16 13:43:53

+0

但我不需要一個精確的數字,但只是告訴用戶有什麼東西可以看到 – user2014474 2013-02-16 13:44:52

回答

3

你需要確定你的服務器上的徽章計數你發送通知之前。當應用程序收到通知時,要確定正確的數字爲時已晚,因爲通知中的數字會立即覆蓋應用程序設置的數字。

+0

我不需要一個確切的數字,但只是告訴用戶有什麼可以看到 – user2014474 2013-02-16 13:46:44

+1

當應用程序打開時,即使用戶沒有看到更新的內容,徽章回到零 – user2014474 2013-02-16 13:47:20

相關問題