2016-12-21 2 views
1

그렇습니다. 유사한 질문을 스택에서 사용할 수 있습니다. 지금까지는 이러한 질문에서 적절한 동시 응답을 찾지 못했습니다.응용 프로그램이 비활성 모드 일 때 자동 누락 알림을 처리하는 방법은 무엇입니까? In Objective C

자동 푸시 알림을받을 때 데이터를 다운로드하거나 web-API를 호출하려면 어떻게해야합니까?

내 코드는 .. 다음과 같습니다

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

    NSDictionary *dicAPS = [userInfo objectForKey:@"aps"]; 

    if(application.applicationState == UIApplicationStateBackground) { 

     // This is working.. 
     [self callWebService]; 
    } 
    else if(application.applicationState == UIApplicationStateInactive) 
    { 
     // This is not working.. 
     [self callWebService]; 
    } 
    else 
    { 
     // This is working.. 
     //Show an in-app banner 
    } 
} 

참고 : 웹 측면에서
1), 이미 추가 된 "컨텐츠 가능"1.
2) 이미 PLIST에 키 아래에 추가로 .

<key>UIBackgroundModes</key> 
<array> 
    <string>remote-notification</string> 
</array> 

바라건대, 나는 당신의 대답에서 새로운 희망을 얻을 것이다.

감사합니다.

+0

또한 사운드 값을 설정하여 페이로드로 관리 할 수 ​​있습니까? –

+0

@ Shubham-Systematix 문제는 앱이 비활성 상태 일 때 웹 API를 호출하거나 코드를 실행하는 방법입니다. 이 경우 – Sonu

+0

을 배경 모드로 설정해야하지만 10 분 안에 작동합니다. slot 또한, 내 아래의 대답을 확인하십시오 –

답변

1

잘못된 방식으로 처리하고 있습니다.

"didReceiveRemoteNotification"은 앱이 비활성 상태 인 경우 전화를 걸지 않습니다.

이 상태를 처리하려면 'AppDelegate'의 "didFinishLaunchingWithOptions"메소드에 다음 코드를 사용하십시오.

//Handling PUSH NOtIFICATIONs when app is killed 

NSDictionary *pushDic = [[NSDictionary alloc]init]; 
pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"]; 

if (pushDic) 
{ 
    [self callWebService]; 
} 
+0

푸시 알림을 받거나 사용자가 앱을 열 때 동시에 코드를 실행합니까? – Sonu

+0

사용자가 배너를 탭하면 실행됩니다. –

+0

나는 노력했다, 그것은 작동하지 않는다. – Sonu

0

앱이 비활성 모드 인 경우 어떤 종류의 원격 알림이나 로컬 알림도 처리 할 수 ​​없습니다. 다른 사람이 전화, 메시지 또는 기타와 같은 사진을 찍을 때 앱이 비활성으로 이동합니다.

불필요한 작업을 수행하려는 경우 웹 서비스를 통해 applicationDidBecomeActive에서 처리 할 수 ​​있습니다.

+0

Whatspp 및 기타 여러 응용 프로그램이 유사한 메커니즘에서 작동합니다 (자동 푸시 알림). 심지어, 애플은 비활성 모드에 대한 지원을 제공하지 않습니다. 왜 UIApplicationStateInactive에 대한 enum이 있습니까? – Sonu