浏览代码

Better way to find out if a notification was triggered or clicked

Sebastián Katzer 12 年之前
父节点
当前提交
3ca2de8c51
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      src/ios/APPLocalNotification.m

+ 4 - 1
src/ios/APPLocalNotification.m

@@ -244,13 +244,16 @@ NSString *const kAPP_LOCALNOTIFICATION = @"APP_LOCALNOTIFICATION";
 {
     UIApplicationState state          = [[UIApplication sharedApplication] applicationState];
     bool isActive                     = state == UIApplicationStateActive;
-    NSString* event                   = isActive ? @"trigger" : @"click";
 
     UILocalNotification* notification = [localNotification object];
     NSString* id                      = [notification.userInfo objectForKey:@"id"];
     NSString* json                    = [notification.userInfo objectForKey:@"json"];
     BOOL autoCancel                   = [[notification.userInfo objectForKey:@"autoCancel"] boolValue];
 
+    NSDate* now                       = [NSDate date];
+    NSTimeInterval fireDateDistance   = [now timeIntervalSinceDate:notification.fireDate];
+    NSString* event                   = (fireDateDistance < 0.01) ? @"trigger" : @"click";
+
     if (autoCancel && !isActive)
     {
         [self cancelNotificationWithId:id];