安排从下周开始每天执行的通知

时间:2016-11-24 17:49:45

标签: ios swift usernotifications unnotificationrequest unnotificationtrigger

我原来的问题:

当用户在19:00设置闹钟时,我想在以下位置显示提醒: 19:03 19:09 19:12 如果他没有与通知互动。

(该应用程序应该能够脱机运行,因此无法使用推送通知唤醒应用程序以进行此过程,如您所知,本地通知不会唤醒应用程序。)

因此,每当用户安排提醒时,我都会敏锐地安排4(1个原始和3个重复),如果用户与通知进行交互,我将删除所有其他内容。

问题是,通知每天重复(每周1,2,3,4,5,6或7天)所以如果我删除所有通知,它将不再显示。

有没有办法让通知从下周开始每天开始?

示例:

今天是星期日13:00 我希望从明天13:01开始每个星期天的通知。

感谢。

1 个答案:

答案 0 :(得分:0)

这是一个客观的C代码,可以每天同时收到通知。 提供关于该时间安排通知的ur日期假设 6月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);
        }
    }];
}