2016-12-21 9 views
1

Да, в стеке есть похожие вопросы. До сих пор я не нашел подходящего параллельного ответа на эти вопросы.Как обрабатывать тихую pushnotification, когда приложение находится в режиме InActive? В Objective C

Как я могу загрузить любые данные или позвонить в веб-api, когда я получаю бесшумные push-уведомления?

Мой код, как показано ниже ..

- (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 Проблема в том, как вызвать web api или выполнить любой код, когда приложение неактивно. – Sonu

+0

Для этого нам нужно установить фоновый режим, но он также работает за 10 минут. слот Также, пожалуйста, проверьте мой ниже ответ –

ответ

1

Вы обрабатываете его неправильно.

«didReceiveRemoteNotification» не вызывается, если ваше приложение находится в состоянии InActive.

Используйте этот код в методе «didFinishLaunchingWithOptions» в «AppDelegate» для обработки этого состояния.

//Handling PUSH NOtIFICATIONs when app is killed 

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

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

Выполняется ли код при одновременном получении push-уведомления или в момент открытия приложения? – Sonu

+0

Он будет выполнен, когда пользователь коснется баннера. –

+0

Я пробовал, он не работает. – Sonu

0

Вы не можете обрабатывать любые удаленные или локальные уведомления, если ваше приложение находится в режиме НЕАКТИВНО. Приложение переходит в НЕАКТИВНО, когда на другой появляется изображение, такое как Call, Message или любое другое.

Если вы хотите сделать что-то нужное, вы можете обработать его в applicationDidBecomeActive с помощью любого веб-сервиса.

+0

Приложение Whatspp и manyother, работающее с аналогичным механизмом (уведомление без звука). Даже Apple не поддерживает поддержку в неактивном режиме, почему есть перечисление для UIApplicationStateInactive? – Sonu

 Смежные вопросы

  • Нет связанных вопросов^_^