我正在使用以下行为为我的应用实施APNS推送
1)如果应用未激活,即在后台启动或尚未启动:
用户将收到弹出消息,点击后会将他/她带到应用程序的第3个标签页(参见下面的代码)
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
self.tabController.selectedIndex = 3;
}
2)如果应用已启动并且当前有效
不会显示任何弹出式提醒,并且新通知的数量将在第3个标签上显示为数字
我的问题是如何判断用户的应用是否有效? 如何以及在何处实施检查以便我可以设置2种不同的行为?
答案 0 :(得分:38)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateActive) {
// update the tab bar item
}
else {
self.tabController.selectedIndex = 3;
}
}
答案 1 :(得分:5)
我对新现代游客的回答......
Swift变量:只需将其放在外部类别以检查应用程序活动状态。
var isApplicationActive:Bool {
get {return UIApplication.sharedApplication().applicationState == .Active}
}
所以swift中的代码将是
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
if isApplicationActive {
//Change badge number ...
} else {
}
}