2009-11-26 20 views

Respuesta

90

ObjC:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

rápida:

UIApplication.sharedApplication().applicationIconBadgeNumber = 0; 
+2

Si utiliza una API como Parse.com (yo era), es probable que también deba actualizar la base de datos remota a "0". De lo contrario, establecerlo localmente ocultará la insignia, pero en el próximo empujón, la insignia no mostrará 0, sino que mostrará el valor anterior +1. Al igual que estos chicos vieron http://stackoverflow.com/questions/13757285/clear-push-notification-badge-after-increment – DelightedD0D

7

En cuanto a IOS5, sólo la creación de número de placa no eliminará los notificación de inserción en el centro de notificaciones. Tienes que hacer esto ...

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

Ya lo he probado. Parece que el método cancelAllLocalNotifications también funciona con notificaciones automáticas en el centro de notificaciones.

+0

Ten cuidado con: cancelAllLocalNotifications. La pregunta era eliminar insignias de las notificaciones PUSH, pero esta eliminará todas las notificaciones locales (si la aplicación programó alguna). – Lukasz

+0

Sí, soy consciente de eso. Pero de acuerdo con http://stackoverflow.com/questions/9925854/remove-single-remote-notification-from-notification-center, no puede eliminar selectivamente una notificación en particular. Solo puedes eliminar todo. Debería comentar en la respuesta de Felixyz también porque usar 'applicationIconBadgeNumber = 0' también eliminará TODAS las notificaciones push + locales, ¿verdad? – Hlung

9

Puede eliminar insignia de notificaciones push añadiendo las siguientes líneas a su código

(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
} 
1

Swift 3

UIApplication.shared.applicationIconBadgeNumber = 0 

se pueden añadir a los métodos siguientes:

optional public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool 

y

optional public func applicationDidBecomeActive(_ application: UIApplication) 
Cuestiones relacionadas