2012-11-07 86 views
4

我向用戶推送沒有徽章密鑰或徽章= 0的通知負載,通知無法從通知中心刪除。這是我的有效載荷:無法清除通知中心沒有Aps徽章或徽章= 0?

{ 
    "aps" : {"alert" : "bala bala"} 
//or "aps" : {"alert" : "bala bala", "badge" : 0} 
} 

然後從NC打開應用程序,通知留在NC,不能被刪除。如果我在aps中設置徽章值大於0,通知將在應用程序啓動後刪除。

{ 
    "aps" : {"alert" : "bala bala", "badge" : 1} 
} 

已經設置[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];應用程序啓動後。

爲什麼在沒有徽章鑰匙或徽章= 0的情況下無法刪除通知?

謝謝。

+0

你使用本地通知? –

+0

我正在使用本地通知,通過[[UIApplication sharedApplication] cancelAllLocalNotifications]刪除所有通知; –

+0

@SarafarazBabi感謝您的評論,我正在使用遠程推送通知。 – fannheyward

回答

0

我有同樣的問題。解決方案非常簡單: 設置徽章首先1然後0.這應該清除NC中的通知。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
// Now the notification should be cleared out of the NC 
0

徽章是0,意思是「不變」。所以,你必須爲徽章設置-1。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1]; 
+0

什麼都沒有改變?即使不能從NC中刪除? – fannheyward

+0

我不知道,爲什麼它不和你一起工作。你如何實現?,使用的是什麼功能? –

0

來源:iOS 5 release notes的應用

  • 推送和本地通知出現在新的Notification 中心的iOS 5的通知中心顯示是 認爲通知要適應「未讀「。推送和本地通知 沒有未讀狀態,請將您的應用程序的徽章數量設置爲0至 清除該通知來自通知中心的應用程序通知。

因此該解決方案是應用程序打開時,應用程序徽章設置爲0。