1

アプリにプッシュ通知があり、アプリが閉じているかアプリがバックグラウンドにある場合はすべて機能しますが、アプリが実行されている(アクティブな)場合、プッシュ通知は表示されませんが、メソッドを呼び出しますapplication:didReceiveRemoteNotification:

4

2 に答える 2

4

次のコードを使用して、didReceiveRemoteNotificationでアプリがフォアグラウンドに移行したかどうかを確認できます。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateActive )
        // app was already in the foreground
    else
        // app was just brought from background to foreground
    ...
}

配信時に、通知自体にエンコードされているプッシュ通知の表示に使用される表示方法(オプションのアラート、バッジ番号、サウンド)を選択することはできません。ただし、おそらくアプリとプッシュ通知のペイロードの両方を制御しているため、ユーザーにアラートビューとメッセージが既に表示されているかどうかをペイロードで指定できます。アプリがすでにフォアグラウンドで実行されている場合にのみ、ユーザーがアラートまたはホーム画面から定期的にアプリを起動しただけではないことを知っていますか。

于 2012-11-28T18:30:35.607 に答える
1

check out this answer https://stackoverflow.com/a/7965961/869455

When app is open, it's app's responsibility to handel notification appropriately in application:didReceiveRemoteNotification: and show a message to user inside app.

于 2012-11-28T18:26:47.843 に答える