瀏覽代碼

wip: add proper fire date

PC Dreams (Paulo Cristo) 9 年之前
父節點
當前提交
efaeb01d2f
共有 1 個文件被更改,包括 12 次插入13 次删除
  1. 12 13
      src/ios/APPLocalNotification.m

+ 12 - 13
src/ios/APPLocalNotification.m

@@ -699,26 +699,25 @@
         content.body = [NSString localizedUserNotificationStringForKey:notification.alertBody
                                                          arguments:nil];
         content.sound = [UNNotificationSound defaultSound];
-    
-        NSDate *fireDate = notification.fireDate;
-        
-        NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
+
         
+        NSDate *fireDate = notification.fireDate;
+        if(fireDate==nil) {
+            fireDate = [NSDate date];
+        }
+         NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
         // Extract all date components into dateComponents
-        NSDateComponents *dateComponents = [gregorianCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
-                                                             fromDate:fireDate];
+         NSDateComponents *dateComponents = [gregorianCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit
+         | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
+                                                           fromDate:fireDate];
+        
         /// 4. update application icon badge number
-        content.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
+        //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];
+        UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"DefaultNotificationIdentifier" content:content trigger:trigger];
         
         /// 3. schedule localNotification
         UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];