|
|
@@ -700,13 +700,26 @@
|
|
|
arguments:nil];
|
|
|
content.sound = [UNNotificationSound defaultSound];
|
|
|
|
|
|
- /// 4. update application icon badge numberß
|
|
|
- //content.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
|
|
|
- // Deliver the notification in five seconds.
|
|
|
- UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger
|
|
|
- triggerWithTimeInterval:1.f repeats:NO];
|
|
|
- UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
|
|
|
- content:content trigger:trigger];
|
|
|
+ NSDate *fireDate = notification.fireDate;
|
|
|
+
|
|
|
+ NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
|
|
|
+
|
|
|
+ // Extract all date components into dateComponents
|
|
|
+ NSDateComponents *dateComponents = [gregorianCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
|
|
|
+ fromDate:fireDate];
|
|
|
+ /// 4. update application icon badge number
|
|
|
+ content.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
|
|
|
+
|
|
|
+ // Deliver the notification at the fire date.
|
|
|
+ UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:dateComponents repeats:NO];
|
|
|
+
|
|
|
+ NSString *identifier = @"DefaultNotificationIdentifier";
|
|
|
+ if(notification.userInfo!=nil && [notification.userInfo objectForKey:@"id"]!=nil) {
|
|
|
+ identifier = [notification.userInfo objectForKey:@"id"];
|
|
|
+ }
|
|
|
+
|
|
|
+ UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];
|
|
|
+
|
|
|
/// 3. schedule localNotification
|
|
|
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
|
|
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
|