如何获得推送通知当应用程序处于活动状态在ios目标c?

我正在一个应用程序,我已经实施苹果推送通知。 当我的应用程序处于后台状态,那么我能够接收推送通知,但是当我的应用程序处于活动状态,那么我不能得到任何推送通知,可以任何帮助吗?

尝试检查内部didReceiveRemoteNotification

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler 

委托方法接收所有状态下的远程通知。

如果要显示处于活动状态的通知警报。 使用HDNotificationView来显示通知警报。

喜欢这个:

 if(application.applicationState == UIApplicationStateActive) { [HDNotificationView showNotificationViewWithImage:[UIImage imageNamed:@"Icon-40.png"] title:title message:message isAutoHide:YES onTouch:^{ /// On touch handle. You can hide notification view or do something [HDNotificationView hideNotificationViewOnComplete:nil]; }]; } 

didReceiveRemoteNotification添加一个UIAlertView ,并检查是否正在接收处于active state通知。 检查下面的代码

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { if (application.applicationState == UIApplicationStateActive) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Received a Notification" message:[NSString stringWithFormat:@"My App received notification while it is running:\n%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]]delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } } 

当推送通知收到您的应用程序应用程序可以是一个以下5个州参考 :: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html

1)没有运行

2)非活动

3)背景

4)悬

5)活动

如果应用程序状态是1,2,3,4,那么iOS将处理并将显示横幅在5(Active状态)的情况下,我们的应用程序需要处理这种情况在这种情况下,下面的方法将被调用

参考 :: https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application?language=objc

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; 

在这里你需要检查使用application.state ==应用程序的状态,然后你可以做任何你想要的理想情况下,我们需要显示警报。