2012-12-07 77 views
5

我正在iphone中進行推送通知。當我收到推送通知時,它在我的應用程序圖標上顯示1,下次顯示爲2,3,4。如果我打開應用程序的0.下一次它應該是1,2,3,4 ...但它顯示最後的數字和+1。我想在打開應用程序後重置推送通知徽章。我從城市飛艇發送+1。增加後清除推送通知徽章

而且它不適合我。

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 
[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
+0

您正在本地清除徽章號碼。您還需要從Urban Airship服務器清除它。我不知道城市飛艇。但我確定它有一個API來重置服務器上的通知標誌。 – EmptyStack

+0

我正在發送徽章號碼+1作爲我api中的增量。 –

回答

0

我已經使用城市飛艇,並有過這個問題。您沒有顯示代碼,但我假設收到通知時,您正在設置應用程序徽章號碼,以指明城市飛艇傳遞給您的內容,不要這樣做。只要讓應用程序自己處理這個問題,當遠程通知進入時,讓它自動自動增加。如果情況並非如此,那麼在城市飛艇方面,您可能會設置一個徽章號碼來發送。不要發送帶有推送通知的徽章號碼,不要發送該部分,iOS會自動將您的徽章從當前的徽章號碼中增加。

3

我使用此代碼在我的應用程序,因爲城市飛艇(UA)的有關文檔

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
[[UAPush shared] resetBadge]; 

說,但它不工作,在應用程序圖標徽章不斷遞增。我在UA論壇的這個問題上看到了一些帖子,他們沒有給出明確的答案。

編輯#1:

我接到一個技術支持人員以下響應在UA有以下的建議,這真是棒極了:

你想要做什麼,是確保您的didFinishLaunchingWithOptions:(NSDictionary的*)launchOptions方法,您呼叫的以下內容:

[[UAPush shared] setAutobadgeEnabled:YES]; 
[[UAPush shared] resetBadge];//zero badge on startup 

,也叫[[UAPush shared] resetBadge];在下面的方法,以及:

applicationDidBecomeActive:(UIApplication *)application 

didReceiveRemoteNotification:(NSDictionary *)userInfo 

技術人員還提到,分配0至applicationIconBadgeNumber是沒有必要的,所以我把它。仍然美麗的作品。

編輯#2:

我最後不得不修改應用:didReceiveRemoteNotification:以包括UA的的handleNotification的電話:applicationState:方法:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    // Get application state for iOS4.x+ devices, otherwise assume active 
    UIApplicationState appState = UIApplicationStateActive; 
    if ([application respondsToSelector:@selector(applicationState)]) 
    { 
     appState = application.applicationState; 
    } 

    [[UAPush shared] handleNotification:userInfo applicationState:appState]; 
    [[UAPush shared] resetBadge]; 
} 

因爲我是在以下情況下有問題:

  1. 用戶在應用程序
  2. 推送通知收到
  3. 返回到主屏幕時
  4. 另一種推送通知被接收(如預期)沒有徽章是顯示在應用程序圖標
  5. 徽章顯示超過1
  6. 數大

通過上面的修改,可以處理這種情況。我想你必須告訴UA,當收到一個通知並且應用程序在前臺運行時處理該通知。

+0

我遇到同樣的問題。我嘗試了你的建議,但它不適合我。你能幫我解決嗎?請看看我的問題在這裏:http://stackoverflow.com/questions/20073212/reset-urbanairship-badge-count –

+0

我不知道我可以添加什麼其他信息。你在上面看到的代碼適用於我。 – Moebius