iospush-notificationios6apple-push-notificationsuiapplicationdelegate

Detect if the app was launched/opened from a push notification


Is it possible to know if the app was launched/opened from a push notification?

I guess the launching event can be caught here:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if (launchOptions != nil) {
         // Launched from push notification
         NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    }
}

However, how can I detect it was opened from a push notification when the app was in background?


Solution

  • See This code :

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
        if ( application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground  )
        {
             //opened from a push notification when the app was on background
        }
    }
    

    same as

    -(void)application:(UIApplication *)application didReceiveLocalNotification (UILocalNotification *)notification