didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
コードを使用して、AppDelegate クラスの新しいメッセージを 3 か所でチェックします。
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
//NSLog(@"Launched from push notification: %@", dictionary);
//notification pending ... so pull from server the new message
[self addMessageFromRemoteNotification:dictionary updateUI:YES];
}
}
そしてdidReceiveRemoteNotification:(NSDictionary*)userInfo
コードを使用する場合:
// notification pending ... so pull from server the new message
[self addMessageFromRemoteNotification:userInfo updateUI:YES];
- (void)applicationDidBecomeActive:(UIApplication *)application
コードを使用する場合
if(application.applicationIconBadgeNumber>0)
{
application.applicationIconBadgeNumber = 0;
// notification pending ... so pull from server the new message
[self openMessageViewForNewMessage];
}
ただし、アプリがまだ通知を「キャッチ」していない場合、つまり、通知を受信していることをまだ認識していない場合があることに気付きました。私は何かメッセージを送りましたか?または、アプリがiOSから新しい通知があることを常に通知されるとは限らないため、新しいメッセージについて「私のサーバー」を常にチェックする必要があります。