2016-06-13 3 views
1

안녕하세요, iOS에서 원격 알림 수신에 대한 질문이 있습니다. 앱이 실행 중이거나 앱이 실행되지 않고 사용자 탭을 누르면 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo이 호출 될 것입니다. 통지에.응용 프로그램이 포어 그라운드로 들어갈 때 원격 알림을 감지합니다.

그러나 사용자가 잠금 화면에서 알림 배지를 무시하고 iPhone을 잠금 해제 한 후에 앱을 실행하면 해당 기능이 호출되지 않으므로 수신 알림을받을 수 있습니다 !!

+0

할 수 없습니다. – Avi

+0

알림이 알림 센터에있는 경우 알림을받습니다. 완료 방법 –

+0

서버에 질의하여 보류 알림이 있는지 확인해야합니다. – jcesarmobile

답변

4

휴대 전화가 잠기면 응용 프로그램이 OS에 의해 비활성 상태로 전송됩니다. 이 시간 동안받은 알림은 앱이 백그라운드에있을 때받은 알림만큼 좋습니다. 백그라운드에서받은 모든 알림과 마찬가지로 사용자가 트레이에서 알림을 탭하지 않으면 앱이 제어되지 않습니다.

0

당신이 어떤 조건이 사용하여 다음 코드

NSDictionary *pushNotificationPayload = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 

    if(pushNotificationPayload) 
    { 
     [self application:application didReceiveRemoteNotification:pushNotificationPayload]; 
    } 
-1

을 사용자가 도청 여부를 확인할 수 있습니다 :) 감사합니다, 또는 앱은 백그라운드에서 또는 활성화됩니다. 당신은 당신이 다음 응용 프로그램 내에서 그것을 얻을 수 없습니다 알림 센터에서 알림을 무시하면

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

    if(application.applicationState == UIApplicationStateActive) { 

     //app is currently active, can update badges count here 

    }else if(application.applicationState == UIApplicationStateBackground){ 

     //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here 

    }else if(application.applicationState == UIApplicationStateInactive){ 

     //app is transitioning from background to foreground (user taps notification), do what you need when user taps here 

    } 
1

에서 응용 프로그램 상태를 확인해야합니다.