2012-08-12 2 views
4

사용자에게 보내는 푸시 알림이 있고 탭을 누를 때 조치를 취할 수 있기를 원합니다. 응용 프로그램이없는 경우,푸시 알림 배너를 선택할 때 호출되는 메서드

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

그러나 : 나는 앱이 전경, 배경에있는 경우 사용자가 알림 센터에서 알림에 도청 경우, 또는 다음의 방법은 애플 대리자에서 호출되는 것을 알고 알림이 도착하자마자 알림 배너가 시작되고 사용자가 탭하면이 메소드는 호출되지 않습니다. 나는이 상황에서 내포해야 할 다른 방법인가? 다른 방법도 구현해야하는 다른 사례가 있습니까?

답변

4

알림 배너를 클릭 할 때 앱을 실행하지 않으면 application:didFinishLaunchingWithOptions:에 NSDictionary가 전송됩니다. 응용 프로그램이 통지를받은 시점에 비활성 인 경우

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSDictionary *pushDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if(pushDict) 
    { 
    [self application:application didReceiveRemoteNotification:pushDict]; 
    } 
} 

또한, 귀하의 application:didReceiveRemoteNtification: 방법, 당신은 다음과 같이 테스트 할 수 있습니다 :

-(void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if([app applicationState] == UIApplicationStateInactive) 
    { 
    NSLog(@"Received notifications while inactive."); 
    } 
    else 
    { 
    NSLog(@"Received notifications while active."); 
    } 

은 그럼 그냥 같은 것을 할 수 있습니다

+0

didFinishLaunchingWithOptions의 일부가 내가 누락되었습니다. - 감사합니다! – lehn0058