2014-02-10 3 views
1

내 응용 프로그램에서 원격 알림을 구현했습니다! 내 응용 프로그램이 배경에 있고 푸시 메시지가 내 장치에 보낼 경우, 나는이 방법으로 반응이 큰 노력"실행되지 않음"상태의 원격 알림

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{ 
...Do Stuff 
} 

앱이 전경 또는 배경 상태에있을 때! 하지만 내 앱이 전혀 실행되지 않으면 어떻게 될까요?! 앱이 실행되고 있지 않을 때 푸시 메시지에 반응 할 수 없습니까? WhatsApp이이를 수행 할 수 있습니다. 맞습니까? 사용자가 알림 센터에서 푸시 알림을 클릭하면

+0

[앱이 푸시 알림에서 시작/열리면 감지] (http://stackoverflow.com/questions/16393673/detect-if-the-app-was-launched-opened-from-a) -push-notification) – joao

+0

전혀 문제가되지 않습니다 .... – davidOhara

+0

알림에서 앱을 실행했을 때 푸시 알림을 처리하는 데 문제가 있습니까? 그것은 거기에 덮여 있지만, 나는 당신의 문제를 오해했을 수도 있습니다 ... – joao

답변

1

당신은 푸시 알림 내용 launchOptions 정보를해야합니다 그리고 당신은 응용 프로그램이 푸시 알림을 클릭 시작된 있는지 확인하는 코드 아래 사용하거나 그것뿐만 아니라 있었다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];   
    NSLog(@"LaunchOptions->%@",launchOptions); 
    NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if (userInfo) { 
     [self performNotificationAction:userInfo]; 
    } 

    return YES; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ 
// NSLog(@"userInfo->%@",userInfo); 
    [self performNotificationAction:userInfo]; 
} 

-(void)performNotificationAction:(NSDictionary*)userInfo{ 
    //Do the stuf whatever you want. 
    //i.e. fetch the message or whatever extra information sent in push notification 
} 

희망이 도움이됩니다.

+0

나는 사용자가 아무 것도 클릭하지 않기를 원한다. 나는 단지 조용한 푸시 메시지를 보내고 싶다. 백그라운드에서! 그러나 내 앱이 실행 중이거나 종료되지 않은 경우 지정된 메소드를 호출하지 않아도됩니다.하지만 WhatsApp는 어떻게 작동합니까?! – davidOhara

+0

아마 당신이 찾고 있습니다. [application : didReceiveRemoteNotification : fetchCompletionHandler] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application : didReceiveRemoteNotification : fetchCompletionHandler :) –

+0

iOS7에서 응용 프로그램을 호출 할 수있는 새로운 방법이 추가되었지만 배포 대상은 iOS7 일뿐입니다. –

관련 문제