iOS 앱에서 push를 수신할 때, 앱의 상태는 다음의 세 가지 상태 중 하나에 있다.
1. 앱이 실행 상태가 아님( push 수신으로 실행됨 )
2. 앱이 foreground( 실행 중 ) 상태에서 push를 수신함
3. 앱이 background 상태에서 push를 수신함
각각의 상태에서 별도의 다른 동작을 위해 이 상태를 구분할 수 있어야 하고, AppDelegate 내에서 다음의 코드를 통해 구분이 가능하다.
# Objective-C
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (launchOptions && [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {
// 1번 상태에서 push 수신
}
return YES;
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateActive) {
// 2번 상태에서 push 수신
}
else {
// 3번 상태에서 push 수신
}
}