Получение push-уведомлений в разных штатах

Я знаю, что эта тема обсуждалась, но я все еще вижу противоречивые комментарии, и я все больше и больше теряюсь

Я просто хочу знать, что происходит, когда мое приложение находится в фоновом режиме и получает push-уведомление.

Я знаю это:

В то время как на переднем плане - приложение: didReceiveRemoteNotification: вызывается, и нет никакого предупреждения, значка или звука.

в то время как не запущено - предупреждение, значок и / или звук показываются / воспроизводятся, и если пользователь нажимает кнопку "Просмотр / Открыть" (действие) уведомления, приложение запускается и вызывается приложение:didFinishLaunchingWithOptions: и полезная нагрузка уведомления пропущено, если пользователь закрывает уведомление и нажимает на значок приложения, вызывается тот же метод, однако информация об уведомлении не передается.

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

Благодарю.

1 ответ

Вы можете найти этот ответ на Как ответить на просмотр push-уведомлений, если приложение уже запущено в фоновом режиме, полезным.

По сути, вы можете сказать, было ли ваше приложение выведено на передний план или нет в приложении:didReceiveRemoteNotification: используя этот фрагмент кода:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateActive )
        // app was already in the foreground
    else
        // app was just brought from background to foreground
    ...
}
Другие вопросы по тегам