Io uso questo codice nel mio app perché la documentazione Urbano Dirigibile (UA) ha detto a
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UAPush shared] resetBadge];
ma non funziona, il badge sull'icona dell'app continua a incrementare. Ho visto alcuni post su questo tema nei forum di UA e non hanno dato una risposta chiara.
EDIT # 1:
Ho ricevuto la seguente risposta da un tecnico supporto a UA con i seguenti suggerimenti, che ha lavorato molto:
Che cosa si vuole fare, è assicurarsi che nella vostra didFinishLaunchingWithOptions: (*) NSDictionary launchOptions metodo, si stanno chiamando il seguente:
[[UAPush shared] setAutobadgeEnabled:YES];
[[UAPush shared] resetBadge];//zero badge on startup
e anche chiamare [[UAPush shared] resetBadge]; nei seguenti metodi così:
applicationDidBecomeActive:(UIApplication *)application
e
didReceiveRemoteNotification:(NSDictionary *)userInfo
Il tecnico inoltre dicono che assegnando 0 a applicationIconBadgeNumber non è necessaria, così ho preso fuori. Funziona ancora magnificamente.
EDIT # 2:
ho finito per dover modificare applicazione: didReceiveRemoteNotification: per includere una chiamata al di UA handleNotification: applicationState: metodo:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
// Get application state for iOS4.x+ devices, otherwise assume active
UIApplicationState appState = UIApplicationStateActive;
if ([application respondsToSelector:@selector(applicationState)])
{
appState = application.applicationState;
}
[[UAPush shared] handleNotification:userInfo applicationState:appState];
[[UAPush shared] resetBadge];
}
perché ero avendo un problema con il seguente scenario:
- utente è in app
- notifica push ricevuto
- cartellini è stata visualizzata sul icona dell'applicazione quando si ritorna alla schermata iniziale (come previsto)
- Un'altra notifica push ricevuto
- Distintivo visualizzato numero maggiore di 1
Con la modifica sopra, questo scenario viene gestito. Immagino tu debba dire a UA che la notifica viene gestita quando ne viene ricevuta una e l'app è in esecuzione in primo piano.
Si sta cancellando il numero del badge localmente. Devi anche cancellarlo dal server di Urban Airship. Non conosco il Dirigibile Urbano. Ma sono sicuro che ha un'API per resettare il badge di notifica sul server. – EmptyStack
invio il numero di badge +1 per l'incremento nella mia api. –