Определите, работает ли приложение на переднем плане, когда уведомление получено на iOS - PullRequest
28 голосов
/ 27 декабря 2011

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

Ответы [ 3 ]

58 голосов
/ 27 декабря 2011

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

14 голосов
/ 11 сентября 2016

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

if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
    //App is in foreground. Act on it.
}
8 голосов
/ 18 мая 2018

Версия Swift 5:

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