2014-12-21 57 views
3

我們都知道,這種方法[UIApplication sharedApplication].applicationIconBadgeNumber = 0;可以從通知中心刪除我們應用程序的所有遠程通知。但是,由於某種原因,我想刪除用戶在通知中心點擊的那個,並且留下其他人。如何刪除通知中心的特定遠程通知

它有任何方法可以做到嗎?

回答

4

如果你只是希望從徽章號刪除一個號碼:

[UIApplication sharedApplication].applicationIconBadgeNumber = MAX([UIApplication sharedApplication].applicationIconBadgeNumber - 1, 0);

如果你問如何以編程方式移除通知中心的一個通知,它不能做在代碼中。顯然,在iOS8中,操作系統將在用戶點擊時刪除單個通知。否則,您無法處理。

請參見:https://stackoverflow.com/a/10569847/620577

+0

我在問後者......非常感謝。 –

+0

@Don_Chen請將此標記爲已回答,並且如果您確信答案已達到上限,請將其標記爲已回答。 –

+1

從iOS 10開始,這也是可能的。檢查我的答案http://stackoverflow.com/a/43942760/2020490 –

0

隨着引進UNUserNotificationCenter適用於iOS和10以上,現在可以刪除你的應用程序的一些或所有遠程通知。

UNUserNotificationCenter documentation

有了這個類的一個共享的單一實例,可以在設備上管理遞送遠程通知。具體而言,可以使用以下方法: func removeDeliveredNotifications(withIdentifiers: [String])如果您要刪除應用的特定通知,或者需要刪除應用的所有通知或func removeAllDeliveredNotifications()