2015-10-26 12 views
16

avevo usatoImpostare il numero distintivo applicazione iOS 9

[UIApplication sharedApplication].applicationIconBadgeNumber = 5; 

per impostare il numero distintivo applicazione. Non funziona solo in iOS 9.

Qualcuno può suggerire perché?

ho provato,

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

dove/in quale metodo hai provato questo –

+0

@ Anbu.Karthik, l'ho usato in diversi punti del mio progetto. Funziona perfettamente in ios 8. – NAZIK

+0

@ Anbu.Karthik, ho bisogno di cambiare il numero del badge non in appdelegate.m, in alcuni altri viewcontrollers. – NAZIK

risposta

24

Salve È necessario registrare UIUserNotificationSettings come questo

UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]; 

[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings]; 

[UIApplication sharedApplication].applicationIconBadgeNumber = 1; 
+1

senza notifiche, sto impostando il numero di badge sull'icona della mia app. quindi non c'è bisogno di registrare le impostazioni di notifica – NAZIK

+0

[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 5]; Usa questo in didFinishLaunchingWithOptions funziona bene –

+0

non funziona in iOS 9. l'hai provato in iOS 9? – NAZIK

0

Set in voi Appdelegate.m file in didFinishLaunching metodo ...

application.applicationIconBadgeNumber = 5.

e cambiare la data corrente dopo 2 giorni e riavviare il iPhone .. e prova di nuovo. Dovrebbe funzionare bene.

enter image description here

+1

Da iOS 8 questo non funziona più senza chiedere all'utente il permesso di cambiare il badge dell'icona dell'app. –

4

Registrazione per i tipi di notifica in iOS

In iOS 8 e versioni successive, le applicazioni che utilizzano le notifiche locali o remoti devono registrare i tipi di notifiche che intendono consegnare. Il sistema offre all'utente la possibilità di limitare i tipi di notifiche visualizzate dall'app. Il sistema non contrassegna le icone, visualizza messaggi di avviso, o riproduce i suoni di avviso se uno qualsiasi di questi tipi di notifica non è abilitato per la tua app, anche se sono specificati nel carico utile della notifica . Link: Docs

@property (nonatomic) NSInteger applicationIconBadgeNumber; // impostato su 0 per nascondere. il valore predefinito è 0. In iOS 8.0 e versioni successive, l'applicazione deve essere registrata per le notifiche degli utenti utilizzando - [UIApplication registerUserNotificationSettings:] prima di poter impostare il badge icona.

Quindi penso che è necessario registrare badge per la notifica del numero di modifica.

+0

grazie per la risposta, registrato e provato, ma senza fortuna. – NAZIK

+0

La mia app è già avendo spinta della notifica della funzioni, sta funzionando bene in ios 8, il problema è in ios 9. – NAZIK

+1

Ho appena test con iOS 9. mi registro: 'tipi UIUserNotificationType = UIUserNotificationTypeBadge;' ' UIUserNotificationSettings * MySettings = [ UIUserNotificationSettings settingsForTypes: tipi categorie: nil]; ' ~ [[UIApplication sharedApplication] registerUserNotificationSettings: MySettings]; ~ e ho impostato: [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 5]; –

1

Funziona perfettamente in questo modo:

[UIApplication sharedApplication].applicationIconBadgeNumber = 10; 

ho provato in Xcode 7.2, iOS 9.2, iPhone 6S più.