2016-06-13 79 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

應用程序的狀態如果忽略從通知中心通知,那麼你不能把它裏面的應用程序。

相關問題