Расписание уведомления для выполнения каждый день, начиная со следующей недели

Моя исходная проблема:

Когда пользователь устанавливает будильник на 19:00, я хотел бы показать напоминание в: 19:03 19:09 19:12 В случае, если он не взаимодействовал с уведомлением.

(Приложение должно иметь возможность работать в автономном режиме, поэтому нет возможности использовать push-уведомление, чтобы разбудить приложение для этого процесса, и, как вы знаете, локальное уведомление не будит приложение).

Поэтому каждый раз, когда пользователь планирует напоминание, я планирую 4 напоминания (1 оригинальное и 3 повторения), и если пользователь взаимодействует с уведомлением, я удаляю все остальные.

Проблема в том, что уведомление повторяется каждый день (1,2,3,4,5,6 или 7 дней в неделю). Поэтому, если я удалю все уведомления, оно больше не будет отображаться.

Есть ли способ визжать уведомления, чтобы начать со следующей недели каждый день?

ПРИМЕР:

Сегодня воскресенье, 13:00, и я хотел бы запланировать уведомление на каждое воскресенье в 13:01, начиная с завтрашнего дня.

Спасибо.


person MCMatan    schedule 24.11.2016    source источник


Ответы (1)


Это объективный код C для получения уведомлений каждый день в одно и то же время. Укажите дату для планирования уведомления на это время. Предположим, 23 июня, 8:30, тогда уведомление будет планироваться на 8:30 ежедневно.

-(void)scheduleNotificationAtTime:(NSDate *)date withUserInfo:(NSDictionary *)dictData{

      self.gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];;
    NSDateComponents *components = [self.gregorian components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];

    NSDateComponents *components1 = components;
    components1.hour = components.hour;
    components1.minute = components.minute;


    NSInteger hour = [components hour];
    NSInteger minute = [components minute];

    NSLog(@"Hour %ld Min %ld ", hour,minute);


    UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components1 repeats:YES];

    /* Set notification */

    UNMutableNotificationContent *content = [UNMutableNotificationContent new];
    content.body = @"Yo received notification.";
    // content.categoryIdentifier=NSNotificationC;
    content.sound = [UNNotificationSound defaultSound];
    NSString *identifier = @"LocalNotification";
    content.userInfo = dictData;
    UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
                                                                          content:content
                                                                          trigger:trigger];

    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    center.delegate = self;
    [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"Something went wrong: %@",error);
        }
    }];
}
person Chandni - Systematix    schedule 23.06.2017