iphone - How to increment/decrement application.badge number for UILocalnotification -
i have uilocalnotification when multiple notification fired want application badge number increment , when notification seen want application badge number decrease depending upon how many notification cancelled / watched notification
- (uilocalnotification *)schedulenotification :(int)remedyid { nsstring *descriptionbody; nsinteger frequency; uilocalnotification *notif = [[uilocalnotification alloc] init]; descriptionbody =[[self remedydetailsforremedyid:remedyid] objectforkey:@"remedytxtdic"]; frequency = [[[self remedydetailsforremedyid:remedyid] objectforkey:@"remedyfrequency"]intvalue]; nsarray *notificationfiredates = [self firedatesforfrequency:frequency]; (nsdate *firedate in notificationfiredates) { notif.timezone = [nstimezone defaulttimezone]; notif.repeatinterval = nsdaycalendarunit; notif.alertbody = [nsstring stringwithstring:descriptionbody]; notif.alertaction = @"show me"; notif.soundname = uilocalnotificationdefaultsoundname; notif.applicationiconbadgenumber = 1; notif.firedate = firedate; nsdictionary *userdict = [nsdictionary dictionarywithobjectsandkeys:notif.alertbody, @"kremindmenotificationdatakey", [nsnumber numberwithint:remedyid],kremindmenotificationremedyidkey, nil]; notif.userinfo = userdict; [[uiapplication sharedapplication] schedulelocalnotification:notif]; } return notif; } } - (void)cancelnotification:(int)remedyid { nsarray *notifications = [[uiapplication sharedapplication] scheduledlocalnotifications]; nslog(@"cancelling... before %d",[[[uiapplication sharedapplication]scheduledlocalnotifications]count]); (uilocalnotification *notification in notifications) { int notifremedyid = [[notification.userinfo objectforkey:@"kremindmenotificationremedyidkey"]intvalue]; nslog(@"remedyid : %d",remedyid); nslog(@"notifyid : %d",notifremedyid); if (remedyid == notifremedyid) { [[uiapplication sharedapplication] cancellocalnotification:notification]; } } nslog(@"cancelling... after %d",[[[uiapplication sharedapplication]scheduledlocalnotifications]count]); }
you can use these 2 methods,
-(void) incrementonebadge{ nsinteger numberofbadges = [uiapplication sharedapplication].applicationiconbadgenumber; numberofbadges +=1; [[uiapplication sharedapplication] setapplicationiconbadgenumber:numberofbadges]; } -(void) decrementonebdge{ nsinteger numberofbadges = [uiapplication sharedapplication].applicationiconbadgenumber; numberofbadges -=1; [[uiapplication sharedapplication] setapplicationiconbadgenumber:numberofbadges]; }
Comments
Post a Comment