1

Я разрабатываю приложение, и я использую тихое push-уведомление, чтобы отправить некоторые данные. Push работает нормально, когда приложение активно, но если я удалил приложение или он неактивен, мое приложение не получает push-уведомление. Я включил толчок уведомление в фоновом режиме при возможности, а также добавил необходимый фон ключ режима в info.plistНевозможно получить молчаливое уведомление, когда приложение неактивно. IOS

Это выборочные данные, что я посылаю вместе с нажатием

{ 
    "aps": { 
     "content-available": 1 
    }, 
    "yourdatakey":{data} 
} 

Что я должен сделать, чтобы исправить эта проблема ?? .. Может ли приложение iOS получать молчаливое push-уведомление в неактивном режиме?

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler 
{  
    if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) 
    { 
     NSLog(@"iOS version >= 10. Let NotificationCenter handle this one."); 
     return; 
    } 
    NSLog(@"HANDLE PUSH, didReceiveRemoteNotification: %@", userInfo); 

    if([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) 
    { 
     NSLog(@"INACTIVE"); 
     completionHandler(UIBackgroundFetchResultNewData); 
    } 
    else if([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) 
    { 
     NSLog(@"BACKGROUND"); 
     completionHandler(UIBackgroundFetchResultNewData); 
    } 
    else 
    { 
     NSLog(@"FOREGROUND"); 
     completionHandler(UIBackgroundFetchResultNewData); 
    } 
} 

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
     willPresentNotification:(UNNotification *)notification 
     withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler 
{ 
    NSLog(@"Handle push from foreground"); 
} 

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
didReceiveNotificationResponse:(UNNotificationResponse *)response 
     withCompletionHandler:(void (^)())completionHandler 
{ 
    NSLog(@"Handle push from background or closed"); 
} 

Push имеет решающую роль в моем приложении и не хочет никакой задержки. Что я должен сделать, чтобы сразу получить толчок ?? ...

+0

Вы можете видеть баннер в Центре уведомлений? –

ответ

0

Насколько я мог сказать, молчаливое толчок уведомление должно выглядеть следующим образом для:

{ 
     "to" : "<DEVICE_ID>", 
     "priority" : "high", 
     "content_available" : true, 
     "data" : { "custom_key":"custom value", "custom_key_2":"custom value 2" } 
} 

Для меня это отправляется почти сразу, когда приложение находится на переднем плане или в фоновом режиме. Однако, когда приложение неактивно, оно не проходит вообще (оно не запускает приложение для обработки сообщения).

Если добавить следующее сообщение:

"notification" : { "body" : "Notification Text", "sound" : "chime.aiff" } 

Он будет играть куранты звук и дисплей «Извещение Текст» в области уведомлений, когда приложение неактивно, но до сих пор не запустит приложение обрабатывать часть данных сообщения. Я понимаю, что это, вероятно, по дизайну, но я использовал это, чтобы подтвердить, что я получаю -что-то, когда приложение неактивно.

Таким образом, это может помочь вам с половиной вашего вопроса (сразу же получить уведомление о нажатии), но я боюсь, что все еще пытаюсь заставить его работать, пока приложение неактивно.

Редактировать: Появляется, если пользователь принудительно закрывает приложение (удаляется из диспетчера задач), Apple отключает запуск приложения, когда приходит push-уведомление. Вы ничего не можете с этим поделать. В документации Apple говорится, что если вы снова запустите приложение или перезапустите устройство, оно снова включит запуск приложения из тихих уведомлений push push, но я не нашел, что это так. Я думаю, что короткий ответ: «молчание push-уведомлений о работе iOS, когда Apple решает позволить им работать». Я думаю, если вам нужна мобильная операционная система, которая работает ожидаемым образом, направьте своих пользователей на Android.

+0

Я бы просто хотел подтвердить, что у меня тоже есть эта проблема, и выглядит так же, как и другие: https://forums.developer.apple.com/thread/36776 –