デバイスでアラート タイプのプッシュ通知を正常に受信できました。
1.アクティブな状態またはアプリがフォアグラウンドにある
アプリの didReceiveRemoteNotification メソッドが呼び出されています。ここで、受信した通知メッセージにアクセスできます。
2. 非アクティブ状態またはアプリがバックグラウンドにある
プッシュ通知のメッセージは、「表示」&「閉じる」ボタンでアラートボックスに表示されます。
を。「表示」ボタンをクリックすると、didReceiveRemoteNotification メソッドが呼び出されます。ここでも、受信した通知メッセージにアクセスできます。
b. 「閉じる」ボタンをクリックすると、メッセージが消えます。この場合、最後に受信したプッシュ通知に関するハンドラーはありません。
3. アプリがバックグラウンドにない、またはアプリが実行されていない
ケース 2 と同じ。
4.iPhoneがスリープモードになっている
警告はメッセージとともに表示されますが、[表示] または [閉じる] ボタンは表示されません。
を。UI では、「Slide to View」と表示されます。ユーザーが電話を操作すると、アプリが開きます。受信した通知メッセージにアクセスできます。
b. ユーザーが対話せずに電話をスリープ モードにするか、手動で電話をスリープ モードにすると、次回 iOS は「スライドしてロックを解除します」というメッセージを表示します。ここでも、最後のプッシュ通知のハンドラーはありません。
ケース 2.b および 4.b の最後のプッシュ通知にアクセスするにはどうすればよいですか。
編集1:以下はappDelegateの私のコードです
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[Test1ViewController alloc] initWithNibName:@"Test1ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
// For PUSH NOTIFICATION
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
NSLog(@"Launched from push notification: %@", dictionary);
}
}
return YES;
}
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
// Received Notification at here ....
// Now based on response further to do ...
}
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
}
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
NSLog(@"Failed to get token, error: %@", error);
}
ありがとう、J61