Dans cette application que j'essaie de créer, j'utilise les notifications Push. Cette partie fonctionne très bien. Lorsque j'envoie une notification, j'ajoute également un badge à l'icône de l'application. Le problème est que lorsque je déjeune l'application, elle devrait à nouveau disparaître, mais ce n'est pas le cas.
-(IBAction)Push{
NSMutableDictionary *data = [NSMutableDictionary dictionary];
[data setObject:@"Numfeud: Troels made a move!" forKey:@"alert"];
[data setObject:[NSNumber numberWithInt:1] forKey:@"badge"];
[data setObject:@"bar" forKey:@"foo"];
[PFPush sendPushDataToChannelInBackground:@"GameChannel2" withData:data];
}
Dans le application didFinishLaunchingWithOptions
, j'essaie de régler le badge sur 0 de la manière suivante:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
Comment puis-je effacer le badge d'icône d'application?
Si votre application redevient active et reste en arrière-plan, vous devez également réinitialiser le nombre de badges dans -applicationDidBecomeActive:
:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}
Si votre application est toujours en cours d'exécution en arrière-plan, -application:didFinishLaunchingWithOptions:
ne sera pas appelé.
Probablement, -application:didFinishLaunchingWithOptions:
n'est pas appelé, car votre application est toujours en cours d'exécution en arrière-plan. Pour supprimer le nombre de badges lorsque l'application est lancée à partir de l'arrière-plan, vous devez également réinitialiser le numéro de badges en -applicationWillEnterForeground:
.
Vous pouvez également utiliser ces codes.
- (void)applicationDidBecomeActive:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}
ou dans un ViewController spécifique
- (void)awakeFromNib {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
Peut-être l'appeller dans applicationWillResignActive
(dans AppDelegate.m
):
-(void)applicationWillResignActive:(UIApplication *)application{
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
Cela vous aidera à effacer badge
si Push
arrive lorsque l'application est ouverte. L'utilisateur voit notification
et vous l'effacez lorsqu'il appuie sur Home Button
(une ou deux fois). En outre, il sera clair si app
est closed
(efface après que l'utilisateur l'ait ouvert).
Ici vous pouvez voir quand cette méthode a appelé.
Dans Swift et dans AppDelegate
func applicationDidBecomeActive(_ application: UIApplication) {
application.applicationIconBadgeNumber = 0
}