2016-06-13 78 views
1

美好的一天, 我有一个关于在iOS上接收远程通知的问题,我知道如果应用程序正在运行或如果应用程序未运行且用户点击时将调用-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo关于通知。当应用程序进入前台时检测远程通知

但是,如果用户忽略锁定屏幕上的通知标志并解锁iPhone,之后运行该应用程序,那么该功能将不会被调用,那么如何获取收到的通知!

谢谢:)

+0

你不能这样做。 – Avi

+0

如果通知仍在通知中心,那么您将在didFinishLaunching方法中得到它 –

+0

您应该创建一种方法来查询服务器以查看它是否有未决的通知 – jcesarmobile

回答

4

手机被锁定时,应用程序被操作系统发送到非活动状态。 因此,在此期间收到的通知与应用程序在后台收到的通知一样好。 就像在后台收到任何通知一样,除非用户在纸盘中点击通知,否则应用程序将无法控制。

0

,你可以做到这一点使用下面的代码

NSDictionary *pushNotificationPayload = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 

    if(pushNotificationPayload) 
    { 
     [self application:application didReceiveRemoteNotification:pushNotificationPayload]; 
    } 
-1

对于任何条件,检查用户是否已经选定,或应用程序在后台或处于活动状态。 你只需要检查

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

    if(application.applicationState == UIApplicationStateActive) { 

     //app is currently active, can update badges count here 

    }else if(application.applicationState == UIApplicationStateBackground){ 

     //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here 

    }else if(application.applicationState == UIApplicationStateInactive){ 

     //app is transitioning from background to foreground (user taps notification), do what you need when user taps here 

    } 
1

应用程序的状态如果忽略从通知中心通知,那么你不能把它里面的应用程序。

相关问题