iOS - обработка push-уведомлений с помощью APNS - PullRequest
15 голосов
/ 02 июля 2010

Учитывая, что на моем iPhone получено push-уведомление.

Что происходит:

  1. Если приложение запущено: есть ли способ получить полезную нагрузку? Я вижу уведомление на моем экране?
  2. Если приложение не запущено, есть ли способ получить полезную нагрузку?

Спасибо за ваши ответы

1 Ответ

34 голосов
/ 02 июля 2010

Прежде всего, push-уведомления не являются «сильными», если вы просто оставите уведомление на достаточно долгое время (например, телефон выключен на много дней), оно будет отброшено.Чтобы сохранить содержимое, отправленное в уведомлениях, необходимо выполнить некоторую пользовательскую внутреннюю обработку.

В протоколе UIApplicationDelegate есть application:didFinishLaunchingWithOptions:.Если ваше приложение запускается пользователем, который нажимает правую кнопку в предупреждении из push-уведомления, словарь launchOptions, связанный с вызовом метода, будет содержать информацию об этом уведомлении;если ваше приложение уже запущено, тогда будет вызван application:didReceiveRemoteNotification: (также в протоколе делегата).

Итак,

  • Если приложение запущено, и выреализовать application:didReceiveRemoteNotification: тогда да, вы получите полезную нагрузку.В противном случае ничего не происходит.

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

...