iOS Silent Push Notification не получает, когда приложение в отключенном состоянии - PullRequest
0 голосов
/ 04 марта 2019

Я хочу показать уведомление о показе на основе некоторых условий, когда получаю молчаливое уведомление, затем генерирую локальное уведомлениетакже включите фоновый режим в xcode и включите удаленное уведомление и фоновую выборку.Для формата уведомлений в режиме без вывода сообщений, подобного следующему:

{
 "message":{
   "token":"iosdevicetoken",
   "apns": {   
   "payload": {
            "aps": {
                "content-available": 1,
                "category": "GENERAL",
                "priority": "high",
                "token": "randomkey",
                "customkey": "abcs"
            }
        }
    }
  }
}

, но ниже метод делегата не вызывается, когда приложение находится в отключенном состоянии (смахивание из фонового состояния)

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

1 Ответ

0 голосов
/ 05 марта 2019

Это намеренно.Из документации для application(_:didReceiveRemoteNotification:fetchCompletionHandler:):

Кроме того, если вы включили фоновый режим удаленных уведомлений, система запустит ваше приложение (или выведет его из приостановленного состояния) ипереводит его в фоновое состояние при получении удаленного уведомления.Однако система не запускает ваше приложение автоматически, если пользователь принудительно завершил его .В этой ситуации пользователь должен перезапустить ваше приложение или перезапустить устройство, прежде чем система попытается снова автоматически запустить ваше приложение.

(выделение добавлено)

iOS видит, что пользователь удаляетприложение из переключателя задач в качестве сигнала о том, что они больше не хотят запускать приложение в фоновом режиме.По этой причине iOS не будет перезапускать приложение в фоновом режиме, пока пользователь не запустит его явно.

...