Отсутствуют push-уведомления

#iphone #ios4 #apple-push-notifications

#iPhone #ios4 #apple-push-уведомления

Вопрос:

У делегата моего приложения для iPhone настроены все push-уведомления:

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {    
    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }    
}
  

Теперь я запускаю его, затем приостанавливаю, нажав кнопку «Домой». Затем я отправляю уведомление на устройство, и уведомление получено. Появится диалоговое окно с двумя кнопками — «Закрыть» и «Просмотреть». Теперь, когда я нажимаю «Просмотреть», приложение возобновляется, и делегату отправляется уведомление didReceiveRemoteNotification.

Но если я нажму «Закрыть», приложение останется в фоновом режиме. Если я затем вручную запущу приложение, ни «didReceiveRemoteNotification», ни «didFinishLaunchingWithOptions» не будут отправлены. Итак, где моя полезная нагрузка? Как мне получить полезную нагрузку в этом случае?

Ответ №1:

Если пользователь закроет уведомление и запустит приложение, используя значок приложения, вы больше не получите полезную нагрузку .. тогда она потеряна навсегда.

Это описано на http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html в разделе «Обработка локальных и удаленных уведомлений».

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