iOS: как учитывать все уведомления, полученные, когда приложение становится активным

Я настраиваю push-уведомления Apple для своего приложения iOS.
Если несколько уведомлений получены, когда приложение не запущено (или находится в фоновом режиме), как все полученные уведомления могут быть учтены при (повторном) запуске приложения?


person Luc    schedule 17.01.2012    source источник


Ответы (2)


В iOS 5 push-уведомления накапливаются в трее.

В application:didFinishLaunchingWithOptions: используйте UIApplicationLaunchOptionsRemoteNotificationKey. Это даст вам словарь уведомлений.

Может быть, это может помочь вам -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
}
person akshay1188    schedule 17.01.2012
comment
спасибо, это то, что я использую, но требуется только последний. Хм... тогда я должен был что-то пропустить. Спасибо за вашу помощь, я проверю это еще раз. - person Luc; 17.01.2012
comment
Да. Ты прав. Но если вы программируете под iOS 5, то уведомления скапливаются в трее. Любое уведомление, на которое вы нажмете, будет получено внутри вашего приложения. - person akshay1188; 17.01.2012
comment
только если в фоновом режиме, а не если он действительно остановился? - person Luc; 17.01.2012
comment
Если ваше приложение активно или находится в фоновом режиме, вы получаете уведомления в application:didReceiveRemoteNotification: если ваше приложение было убито (или остановлено), вы получаете его в application:didFinishLaunchingWithOptions. - person akshay1188; 17.01.2012

Нет возможности программно получать push-уведомления.

Единственный способ обрабатывать эти уведомления — реализовать application:didFinishLaunchingWithOptions:, который будет содержать данные об уведомлении, которое нажал пользователь.

Хороший способ добиться того, чего вы хотите, — это иметь собственную веб-службу, которую вы вызываете, когда ваше приложение переходит на передний план.

person Raphaël Agneau de Selve    schedule 17.01.2012
comment
спасибо, это то, что я делаю, но когда приложение запускается, я думаю, что должна быть возможность получать все уведомления, а не только последнее. - person Luc; 17.01.2012
comment
К сожалению, нет способа сделать это. - person Raphaël Agneau de Selve; 17.01.2012