Local Notification in background
14,486
Solution 1
-(void)insert:(NSDate *)fire
{
[[UIApplication sharedApplication]cancelAllLocalNotifications];
self.localNotification = [[UILocalNotification alloc] init];
if (self.localNotification == nil)
{
return;
}
else
{
self.localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
self.localNotification.alertAction = nil;
self.localNotification.soundName = UILocalNotificationDefaultSoundName;
self.localNotification.alertBody = @"Hey looks like you're meeting up with %@, why don't you let your other friends know what fun they're missing out on? Share a photo :)";
self.localNotification.alertAction = NSLocalizedString(@"Read Msg", nil);
self.localNotification.applicationIconBadgeNumber=1;
self.localNotification.repeatInterval=0;
[[UIApplication sharedApplication] scheduleLocalNotification:self.localNotification];
}
}
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif
{
[[UIApplication sharedApplication]cancelAllLocalNotifications];
app.applicationIconBadgeNumber = notif.applicationIconBadgeNumber -1;
notif.soundName = UILocalNotificationDefaultSoundName;
[self _showAlert:[NSString stringWithFormat:@"%@",Your msg withTitle:@"Title"];
}
- (void) _showAlert:(NSString*)pushmessage withTitle:(NSString*)title
{
[self.alertView_local removeFromSuperview];
self.alertView_local = [[UIAlertView alloc] initWithTitle:title message:pushmessage delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[self.alertView_local show];
if (self.alertView_local)
{
}
}
Hope this will help you :)
Solution 2
addTimerInterval
is depcrecated in iOS 4.0, make sure you deployment target. You can use.
- (id)dateByAddingTimeInterval:(NSTimeInterval)ti
Also make sure you set the correct value for fireDate
Solution 3
Please Use below code.
self.localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
self.localNotification.alertAction = nil;
self.localNotification.soundName = UILocalNotificationDefaultSoundName;
self.localNotification.alertBody = @"Hey looks like you're meeting up with %@, why don't you let your other friends know what fun they're missing out on? Share a photo :)";
self.localNotification.alertAction = NSLocalizedString(@"Read Msg", nil);
self.localNotification.applicationIconBadgeNumber=1;
self.localNotification.repeatInterval=0;
Comments
-
Sundeep Saluja almost 2 years
Can anyone please tell me how to get a
UILocalNotification
while my app is in the background.I am posting my code here. Thanks in advance.
UILocalNotification *localNotif = [[UILocalNotification alloc] init]; if (localNotif == nil) return; localNotif.fireDate =[startDate addTimeInterval:60]; NSLog(@"%@",localNotif.fireDate); localNotif.timeZone = [NSTimeZone defaultTimeZone]; localNotif.alertAction = @"View"; localNotif.soundName = UILocalNotificationDefaultSoundName; NSString *notifStr=[NSString stringWithFormat:@"Hey looks like you're meeting up with %@, why don't you let your other friends know what fun they're missing out on? Share a photo :)",[itemDict objectForKey:@"fname"]]; NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:notifStr ,@"notifKey",nil]; localNotif.userInfo = infoDict; [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; [localNotif release];
-
Chanchal Raj over 8 yearsFor iOS 8 or above, you need to ask for user permission too: if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; }
-
Avijit Nagare almost 8 yearsAlso, Local notification doesn't put alert/banner while app is background.