Отсутствуют push-уведомления - PullRequest
1 голос
/ 29 апреля 2011

Для делегата приложения на моем 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 Ответ

4 голосов
/ 30 апреля 2011

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

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

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

...