Я успешно получаю push-уведомление на своем устройстве, которое имеет тип предупреждения.Доступ к последнему полученному push-уведомлению, которое было закрыто/проигнорировано
1. Активное состояние или приложение находится на переднем плане
метод didReceiveRemoteNotification становится призванным приложения. Здесь я могу получить доступ к полученному уведомлению.
2. В-активном состоянии или приложение в фоновом режиме
сообщение уведомления Push-отображается в окне предупреждения с & кнопку «Закрыть» «Вид».
a. При щелчке кнопки «view» вызывается метод doReceiveRemoteNotification. Снова я могу получить полученное уведомление.
b. При нажатии кнопки «Закрыть» сообщение исчезнет. В этом случае у меня нет обработчика последнего полученного push-уведомления.
3. App не в фоновом режиме или приложение не работает
То же случае 2.
4. iPhone находится в спящем режиме
оповещение отображается с сообщением, но нет кнопки «Просмотр» или «Закрыть».
a. В пользовательском интерфейсе отобразится «Slide to View». Если пользователь взаимодействует с телефоном, он откроет приложение. Я могу получить доступ к полученному уведомлению.
b. Если пользователь не взаимодействует и позволяет телефону перейти в спящий режим или вручную поместить телефон в спящий режим, то в следующий раз, когда iOS отобразит сообщение «Слайд для разблокировки». Здесь снова у меня нет обработчика для последнего push-уведомления.
Как я могу получить доступ к последнему push-уведомлению о случаях 2.b и 4.b, есть ли какой-либо метод, который наилучшим образом называется, который мне не хватает для реализации.
EDIT 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
Думаю, мне нужно, чтобы сообщение было получено, и на основании этого мне нужно только проверить потерянные сообщения. Это единственное решение, которое сейчас лучше. – JiteshW
Если вы сохраняете количество значков, это, конечно, способ определить, нужно ли вам проверять наличие новых сообщений. – Norbert
Я пробовал номер значка, но проблема в том, что номер значка на моих значках приложения не увеличивается. – JiteshW