Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set repeat frequency in User Notification [duplicate]

Till iOS 9 we write local notifications like this

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = pickerDate;
localNotification.alertBody = self.textField.text;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.repeatInterval = NSCalendarUnitMinute;
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

and in local notification we have repeatInterval, Now in WWDC2016 Apple announced User Notification which contains

  • UNTimeIntervalNotificationTrigger.
  • UNCalendarNotificationTrigger.

    UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:60 repeats:YES];
    

the code above will trigger notification after every minute. But can't set the date.

NSDateComponents* date = [[NSDateComponents alloc] init];
date.hour = 8;
date.minute = 30;

UNCalendarNotificationTrigger* triggerC = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:date repeats:YES];

the code above date can be set and repeat will trigger tomorrow at 8:30 not not after minute.

In iOS 10 User Notification how I can set date time with repeat frequency just like we can set in UILocalNotification?

I want to schedule User Notification tomorrow at 8:30pm and keep repeating after every minute just like the code I specified at the top regarding local notification

like image 817
S.J Avatar asked Jun 23 '16 06:06

S.J


1 Answers

For iOS 10 you can use like this:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:fireDate];
UNCalendarNotificationTrigger* trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES];

it has the same effect from the iOS 9 code. To repeat you just have to use the components that you want to repeat.

like image 138
Ramon Vasconcelos Avatar answered Oct 12 '22 14:10

Ramon Vasconcelos