2013-08-05 5 views
11

Ich möchte alle Push-Benachrichtigungen meiner Anwendung löschen, sobald der Benutzer eine der Push-Benachrichtigungen wählt.Löschen Push-Benachrichtigungen aus der Benachrichtigungszentrale nach der Auswahl eines

Ich habe andere Threads hier gesehen, die sagen, dass es in iOS nicht möglich ist. aber ich habe eine Anwendung vom App Store heruntergeladen, die das gleiche tut.

+1

Sie könnten in Erwägung ziehen, weitere Informationen über die App mit dieser Funktion zu veröffentlichen. – rjstelling

+0

Und auch Links, wo es angeblich unmöglich ist. Auf diese Weise Ihre Frage wäre informativer – Tala

+2

Legen Sie einfach die Anzahl Ihrer App-Abzeichen als 0. Es löscht alle Benachrichtigungen von Ihrem Benachrichtigungszentrum –

Antwort

28

Wenn es eine lokale Meldung ist dann Abzeichen Symbol zu entfernen, haben Sie es zu tun wie dieses

UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
localNotification.applicationIconBadgeNumber = 1; 

Wenn es Push-Benachrichtigung ist das Sie können es unter

geschrieben von Code tun
[UIApplication sharedApplication].applicationIconBadgeNumber=0; 

Sie können diese Methoden überall aufrufen, wo Sie möchten. Zum Beispiel, wenn Sie eine Benachrichtigung zur Zeit gelöscht werden sollen, wenn die Anwendung gestartet wird, dann schreibt in

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

, wenn Ihre App, die Sie zum ersten Satz nicht über die Ausweisnummer verwenden, dann setzen Sie ihn, es zu entfernen aus Benachrichtigungszentrum.

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

Danke, aber ich habe es bereits als Push-Benachrichtigung erwähnt –

+0

Ich habe Code für beide Szenarien hinzugefügt. zweiten Code für Push-Benachrichtigung verwenden –

+0

Ich habe versucht [UIApplication sharedApplication] .applicationIconBadgeNumber = 0; .... hat nicht für mich funktioniert –

2

Alles, was Sie tun müssen, ist

application.applicationIconBadgeNumber = 0;

in

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions.

EDIT

Wenn Sie Ihre App nicht schließen, sondern nur um es zu Hintergrund zu senden. Dann fügen Sie das in Ihrer unten genannten Funktion hinzu.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground ) 
    { 
     //opened from a push notification when the app was on background 
     application.applicationIconBadgeNumber = 0; 
    } 
} 
+1

Ja, das was ich gesagt hat .. und wenn die Anwendung im Hintergrund-Modus ist dann prüfen, in diesem Delegatmethode - (void) Anwendung: (UIApplication *) Anwendung didReceiveRemoteNotification: (NSDictionary *) userInfo { } –

+0

Nach meinem Verständnis, application.applicationIconBadgeNumber = 0; wird das Abzeichen-Symbol und nicht die Benachrichtigungen in der Benachrichtigungszentrale zurücksetzen. Ich habe es versucht, aber nicht funktioniert –

+0

Nun. Hier wurde die Benachrichtigung aus dem Benachrichtigungscenter gelöscht, wenn ich eine bestimmte App mit Benachrichtigung öffne. –

Verwandte Themen