Локальное уведомление в фоновом режиме

Может ли кто-нибудь сказать мне, как получить UILocalNotification, пока мое приложение находится в фоновом режиме.

Я публикую свой код здесь. Заранее спасибо.

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];

person Sundeep Saluja    schedule 29.05.2013    source источник
comment
Что вы подразумеваете под получением локального уведомления, когда приложение находится в фоновом режиме? Если вы запланировали локальное уведомление, и оно срабатывает, когда ваше приложение находится в фоновом режиме, пользователь увидит представление предупреждения, но это все. Вы не можете получить сообщение о том, что локальное уведомление запущено!   -  person Dabrut    schedule 29.05.2013
comment
НО в моем случае не увольняют. я не знаю почему?   -  person Sundeep Saluja    schedule 29.05.2013
comment
Какое значение startDate ? Попробуйте [NSDate dateWithTimeIntervalSinceNow:60] и удалите часовой пояс   -  person Dabrut    schedule 29.05.2013
comment
Что это за журнал o/p(localNotif.fireDate)??   -  person Anil Varghese    schedule 29.05.2013
comment
Что такое дата начала? Если это в прошлом, уведомление не сработает.   -  person Stephen Darlington    schedule 29.05.2013


Ответы (3)


-(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)
    {
    }
}

Надеюсь, что это поможет вам :)

person Abha    schedule 29.05.2013
comment
Для iOS 8 или более поздней версии вам также необходимо запросить разрешение пользователя: категории:нет]]; } - person Chanchal Raj; 09.10.2015
comment
Кроме того, локальное уведомление не помещает предупреждение/баннер, пока приложение находится в фоновом режиме. - person Avijit Nagare; 23.06.2016

addTimerInterval устарела в iOS 4.0, убедитесь, что вы выбрали цель развертывания. Ты можешь использовать.

- (id)dateByAddingTimeInterval:(NSTimeInterval)ti

Также убедитесь, что вы установили правильное значение для fireDate

person Khawar    schedule 29.05.2013

Пожалуйста, используйте код ниже.

 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;
person Yukta Arora    schedule 08.07.2016