确定用户是否从通知中打开应用程序

Determine if the user open app from notification

如果您曾经下载过 Telegram 应用程序或其他消息传递应用程序,您会看到当您在应用程序内时(应用程序状态为活动状态),当有人向您发送消息时,它会在应用程序内显示自定义通知屏幕顶部。当您触摸该自定义通知时,它会将您重定向到聊天屏幕。

但是当应用处于非活动状态(应用处于后台)时,您会在应用外收到聊天通知,可能是在锁定屏幕或其他应用上。如果你触摸它,它会打开应用程序并将你重定向到聊天屏幕没有应用程序内自定义通知

要做到这一点,我想我应该知道如何确定应用程序是否从通知中打开。 问题,如何确定应用程序是从通知打开的还是当前处于活动状态?

Objective-C:

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if ([UIApplication sharedApplication].applicationState==UIApplicationStateActive) {
       NSLog(@"App already open");
    } else {
       NSLog(@"App opened from Notification");
    }
}

Swift:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
    if application.applicationState == UIApplicationState.active {
        print("App already open")
    } else {
        print("App opened from Notification")
    }
}