Цель C: Как проверить, активно ли приложение в данный момент (то есть пользователь использует его)?
Я реализую APNS push для своего приложения со следующими формами поведения
1) Если приложение неактивно, то есть в фоновом режиме или еще не запущено:
Пользователь получит всплывающее сообщение и по щелчку приведет его/ее к третьей вкладке в приложении (см. код ниже)
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
self.tabController.selectedIndex = 3;
}
2) Если приложение запущено и в настоящее время активно
Никакое всплывающее предупреждение не будет отображаться, и количество новых уведомлений будет отображаться как номер на третьей вкладке
![enter image description here]()
Мой вопрос в том, как определить, активно ли приложение пользователя?
Как и где я могу реализовать проверку, чтобы установить два разных поведения?
Ответы
Ответ 1
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateActive) {
// update the tab bar item
}
else {
self.tabController.selectedIndex = 3;
}
}
Ответ 2
Мой ответ для новых современных посетителей...
Быстрая переменная. Проще говоря, это где-нибудь, где внешние классы проверяют активное состояние приложения.
var isApplicationActive:Bool {
get {return UIApplication.sharedApplication().applicationState == .Active}
}
поэтому ваш код в swift будет
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
if isApplicationActive {
//Change badge number ...
} else {
}
}