2016-06-13 8 views
1

おやすみ、 iOSでリモート通知を受信することについて質問があります。アプリが実行されているか、アプリが実行されておらず、ユーザーがタップした場合に-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo通知に。アプリケーションがフォアグラウンドに入ったときにリモート通知を検出する

しかし、ユーザーがロック画面の通知バッジを無視してiPhoneのロックを解除した後、アプリを実行すると、その機能は呼び出されないので、どのように受信通知を受け取ることができます!

はありがとうございました:)

+0

できません。 – Avi

+0

通知がまだ通知センターにある場合は、didFinishLaunchingメソッド –

+0

で通知します。保留中の通知 – jcesarmobile

答えて

4

携帯電話がロックされると、アプリケーションはOSによって非アクティブ状態になります。 この間に受け取った通知は、アプリがバックグラウンドにあるときに受け取った通知と同じくらい良いものです。 バックグラウンドで受け取った通知と同様に、ユーザーがトレイ内の通知をタップしない限り、アプリケーションは制御を受けません。

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

にアプリケーションの状態を確認する必要があります。

関連する問題