2

アプリが実行されていないときにリモート通知情報を取得しようとしていたので、次から取得できると言われました:

UILocalNotification *localNotification  = [launchOptions 
                   objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 

メソッドで:

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

、しかし、まだ情報を取得できません。

次に、alertView を使用して iPhone (Xcode なしで起動) に情報を表示しますが、まだ情報を取得できません。

これを引き起こす他の問題はありますか?何かアイデアがあれば教えてください。

4

2 に答える 2

5

リモート通知を取得して処理する方法:

アプリが実行されています

以下のuserInfoメソッドには、すでにプッシュ通知が含まれています

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}

アプリが実行されていません

次の 2 つの状況では、launchOptions のキーの値にプッシュ通知が含まれます。

1.画面がロックされ、リモートプッシュ通知を受信すると、画面が点灯し、ユーザーが画面のロックを解除して、アプリを直接起動します。

2.ドロップダウンメニューの通知をタップしてアプリを起動します。ユーザーがアプリを直接タップすると、通知が消えて見逃されます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey] description];
}
于 2013-07-01T09:23:21.057 に答える
3

そのキーは、ユーザーが通知からアプリを起動したときの起動オプションにのみ表示されます (たとえば、通知センターでアプリをタップします)。ちなみに、リモート通知はあなたが使用しているクラスではないと思います ( UILocalNotification)。

デバイスがプッシュを受信したときにアプリがフォアグラウンドになく、ユーザーが通知からアプリを起動しなかった場合、通知はなくなります。自分のサーバーをチェックして、何か見逃していないかどうかを確認する必要があります.

于 2013-07-01T04:18:33.343 に答える