この質問は少し古いですが、とにかく私がここで見つけたものをポップします。
アプリデリゲートに実装する必要があるメソッドは、アプリがリモート通知から起動されたかどうか(アプリがデバイスで実行されていないとき)、または実行中にリモート通知を受信したかどうかを確認する背景または前景)。
まずアプリの委任にすでに存在する方法である:、これはリモート通知から起動されたかどうかを確認するには
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
これに似たいくつかのコードしている:
// Check to see if launched from notification
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
NSLog(@"Launched from push notification: %@", dictionary);
// DO SOMETHING HERE
}
}
を実装する必要があるもう1つの方法は、アプリケーションが実行されているときのアプリケーションの場合です。
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Received notification: %@", userInfo);
}
あなたからの通知をどのように処理するかはあなた次第ですが、それはあなたのアプリがそれを知っている方法です!
この2番目の方法では、渡されたアプリケーションのUIApplicationStateを調べて、フォアグラウンドかバックグラウンドかを調べることができます。