web-dev-qa-db-fra.com

Déterminez si une application est en cours d'exécution au premier plan lorsqu'une notification est reçue sur iOS

J'aimerais trouver un moyen de voir quelle application fonctionne au premier plan ou si l'écran d'accueil est affiché lorsqu'une notification locale de mon application apparaît. Par exemple, je veux avoir des actions différentes s'il y a dans Homescreen ou dans une autre application. J'ai essayé d'utiliser Traité et PID mais le PID est généré HEN L'application commence et non la dernière fois que l'application est utilisée. Une idée? Merci

31
user1117453

Comme décrit dans la Documentation de notification Push , vous pouvez lire [[UIApplication sharedApplication] applicationState] Lorsque vous recevez la notification pour déterminer si votre application est au premier plan, inactive (c'est visible mais une boîte de dialogue comme le sélecteur WiFi est devant) ou en arrière-plan.

59
DarkDust

Juste pour avoir un code copier-coller disponible pour les autres:

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

Swift 5 Version :

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