如何在ios目标c中应用处于活动状态时获取推送通知?

时间:2017-07-12 10:15:01

标签: ios objective-c xcode8

我正在开发一个已实施Apple推送通知的应用。当我的应用程序处于后台状态时,我能够接收推送通知但是当我的应用程序处于活动状态时,我无法获得任何推送通知,可以对此进行任何帮助吗?

3 个答案:

答案 0 :(得分:2)

尝试检查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];
                                                          }];
}

答案 1 :(得分:0)

ItemTouchHelper内添加UIAlertView并检查您是否在didReceiveRemoteNotification收到通知。检查以下代码

active state

答案 2 :(得分:0)

当您的应用程序收到推送通知时,应用程序可以是以下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(活动状态),我们的应用程序需要处理此案例 在这种情况下,下面的方法将被称为

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

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^airport/(.*) ./cabs/airport.php?loc=$1

这里你需要使用application.state == Active来检查app的状态然后你可以做你想要的理想情况,我们需要显示警告。