一行代码解决APP在前台激活状态下推送任然会响应的问题
最近集成极光推送,然后成功以后发现一个问题:当APP在前台激活状态下,按着极光的官方demo和文档来配置,依然会接收到数据并进行处理。而这种情况,我们往往是不想APP去响应的。
这时候,就需要判断,我们的APP是否处于前台激活状态,如果处在前台激活状态,我们就让他不去响应这个推送,不发送Notification告知我们需要处理。
-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler: (void (^)(UIBackgroundFetchResult))completionHandler { [JPUSHService handleRemoteNotification:userInfo]; if([UIApplication sharedApplication].applicationState == UIApplicationStateActive) { //程序处于激活状态,不允许推送 NSLog(@"程序处于激活状态,不允许推送"); return; }else{ NSLog(@"fetchCompletionHandler fetchCompletionHandler收到通知:%@", [self logDic:userInfo]); //处理推送 [[NSNotificationCenter defaultCenter] postNotificationName:@"GetJpushModel" object:userInfo]; completionHandler(UIBackgroundFetchResultNewData); } }
不会写成漂亮的那种,如果有人看到请见谅。谢谢。
网友评论