2013-08-05 14 views
11

Desidero cancellare tutte le notifiche push della mia applicazione, una volta che l'utente seleziona una delle notifiche push.Cancella notifiche push dal centro notifiche dopo aver selezionato uno

Ho visto altri thread qui che dicono che non è possibile in iOS. ma ho scaricato un'applicazione dall'app store, che fa la stessa cosa.

+1

Si potrebbe prendere in considerazione la pubblicazione di ulteriori informazioni sull'app con questa funzione. – rjstelling

+0

E anche i collegamenti dove si dice che sia impossibile. In questo modo la tua domanda sarebbe più istruttiva – Tala

+2

imposta il numero di badge della tua app come 0. cancella tutte le notifiche dal tuo centro notifiche –

risposta

28

Se si tratta di una notifica locale, allora per rimuovere l'icona distintivo quello che dovete fare in questo modo

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

Se si tratta di notifica push la si può fare da codice scritto sotto

[UIApplication sharedApplication].applicationIconBadgeNumber=0; 

Puoi chiamare questi metodi ovunque tu voglia. Per esempio, se si desidera cancellare la notifica nel momento in cui l'applicazione è lanciato poi scrivere in

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

se la vostra applicazione non utilizza il numero di badge dovete primo set, poi ripristinarlo per rimuoverlo dal centro di notifica

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

Grazie, ma l'ho già menzionato come notifica push –

+0

Ho aggiunto il codice per entrambi gli scenari. usa il secondo codice per la notifica push –

+0

Ho provato [UIApplication sharedApplication] .applicationIconBadgeNumber = 0; .... non ha funzionato per me –

2

Tutto quello che dovete fare è

application.applicationIconBadgeNumber = 0;

in

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

EDIT

Se non si sta chiudendo la vostra applicazione, ma solo di inviarlo allo sfondo. Quindi aggiungilo nella tua funzione di sotto.

- (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

Sì, ciò che ho detto .. e se la tua applicazione è in modalità background, controlla questo metodo delegato - (void) application: (applicazione UIApplication *) didReceiveRemoteNotification: (NSDictionary *) userInfo { } –

+0

Secondo la mia comprensione, application.applicationIconBadgeNumber = 0; ripristinerà l'icona Badge, non le notifiche nel centro notifiche. Ho fatto un tentativo, ma non ha funzionato –

+0

Bene. Qui la notifica è stata cancellata dal centro notifiche ogni volta che apro un'app specifica con notifica. –