Подтвердить что ты не робот

Определите, работает ли приложение на переднем плане, когда уведомление получено в iOS

Я хотел бы найти способ увидеть, что приложение работает на переднем плане, или если отображается домашний экран, когда появляется локальное уведомление из моего приложения. Например, я хочу иметь разные действия, если есть на рабочем столе или в другом приложении. Я пытался использовать обработанные и pid, но pid генерируется при запуске приложения, а не в последний раз, когда приложение используется. Есть идеи? спасибо

4b9b3361

Ответ 1

Как описано в документации push-уведомление, вы можете прочитать [[UIApplication sharedApplication] applicationState], когда вы получаете уведомление, чтобы определить, находится ли ваше приложение на переднем плане, неактивно (оно видимо, но диалог, подобный выбору WiFi, спереди) или в фоновом режиме.

Ответ 2

Просто, чтобы иметь код копирования-вставки для других:

if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
    //App is in foreground. Act on it.
}

Ответ 3

Версия Swift 5:

let isForeground = UIApplication.shared.applicationState == .active