IOS - обработка push-уведомлений с помощью APNS

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

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

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

спасибо для ваших ответов

Ответы

Ответ 1

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

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

Итак,

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

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