Search code examples
iphoneiphone-sdk-3.0push-notification

How do I tell if my iPhone app is running when a Push Notification is received?


I am sending Push Notifications to my iPhone app, and I'd like a different set of instructions to execute depending on whether the app is already launched or not. I'm new to iPhone development, and while I suspect UIApplication or my project's AppDelegate class has the solution, I haven't found a good answer. Is there an easy way to check for this?


Solution

  • The UIApplication delegate has the method

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    

    which you need to implement. This receives the notification when the app is running.

    If your app is not currently running and a notification is received then your app can be launched with

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

    with the notification details held in the launchOptions dictionary. if the dictionary is nil then the user tapped the application icon as normal.