0

私はすでに持っています

- (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
    ...
}

これで、通知が届いたときに何らかのアクションを実行して、アプリケーションをバックグラウンドに保つことが可能になりました。通知を受け取ったときにアプリをフォアグラウンドに表示したくありません。私が欲しいのは、通知が届いたとき、いくつかのフラグを設定するだけで(アプリはまだバックグラウンドにあります)、ユーザーが自分でアプリを開くと、メッセージを優雅な方法で表示できます。概要: 通知が届いたときにアプリケーションをフォアグラウンドにしたくはありませんが、アプリをバックグラウンドに保ちながらコードでいくつかのアクションを実行したいと考えています。

ありがとう;

4

1 に答える 1

1

使いたくなる

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions

アプリはバックグラウンドにあるため、着信通知については何も知りません。通知は iOS によって処理されます。

ただし、ユーザーが通知をスワイプ/タップしたためにアプリが開くと、アプリは上記のメソッドで渡されたlaunchOptionsを取得します。ユーザーが (アプリ アイコンをタップして) アプリを直接開いた場合、launchOptionsは空になります。詳細については、UIApplicationDelegate プロトコル リファレンスを参照してください。

リモート通知ペイロードを取得するには、次のようにします。

[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]

ローカル通知ペイロードの場合、次のことができます。

[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]
于 2012-09-11T19:01:09.253 に答える