【iOS】プッシュ通知時に通知メッセージから起動した場合としない場合の違い

プッシュ通知時に呼ばれるdidReceiveRemoteNotificationはプッシュ通知時とプッシュ通知からタッチして起動したとき両方とも呼ばれます

違いはapplication.applicationStateの値がactive,Inactive,backgroundかに違いがあります

プッシュ通知からタッチして起動しようとしたときAppDelegate : applicationWillEnterForegroundが呼ばれて、

application.applicationStateがInactiveになるので条件分岐で処理を指定できます

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

      if(application.applicationState == UIApplicationState.Inactive){
            //通知タップ時の起動処理
      }else if (application.applicationState == UIApplicationState.active){
            //起動時
      }else{
            //Background
      }
}