Локальные и удаленные уведомления подробно

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

Локальные и удаленные уведомления появляются то же пользователям

Пользователи могут быть уведомлены следующими способами:

С точки зрения пользователя и локальные и удаленные уведомления указывают, что существует что-то вроде интереса к приложению.

Например, рассмотрите приложение, управляющее списком ожидающих выполнения задач, и каждый элемент в списке имеет дату и время, когда должен быть завершен элемент. Пользователь может запросить приложение уведомить его в определенном интервале, прежде чем истечет эта дата оплаты. Для осуществления этого приложение планирует локальное уведомление для той даты и времени. Вместо того, чтобы указать предупредительное сообщение, приложение принимает решение указать значок номер (1) и звук. В назначенное время iOS играет звуковые дисплеи объявления число значка в верхнем правом углу значка приложения, такой, как проиллюстрировано на рисунке 1-1.

Рисунок 1-1  значок приложения с числом значка (iOS)
Application icon with a badge number

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

Локальные и удаленные уведомления кажутся отличающимися от приложений

Когда локальное или удаленное уведомление поступает, если Ваше приложение является frontmost application:didReceiveRemoteNotification: или application:didReceiveLocalNotification:метод вызывают на его делегате приложения. Если Ваше приложение не является frontmost или не выполнением, Вы обрабатываете уведомления путем проверки, что словарь опций передал application:didFinishLaunchingWithOptions: из Вашего приложения делегируют для любого UIApplicationLaunchOptionsLocalNotificationKey или UIApplicationLaunchOptionsRemoteNotificationKey ключ. Для получения дополнительной информации об обработке уведомлений, посмотрите Планирование, Регистрацию и Обработку Уведомлений.

Больше о локальных уведомлениях

Локальные уведомления идеально подходят для приложений с основанными на времени способами поведения, такими как приложения списка ожидающих выполнения задач и календарь. Приложения, работающие в фоновом режиме в течение ограниченного периода, позволенного iOS, могли бы также счесть локальные уведомления полезными. Например, приложения, зависящие от серверов для сообщений или данных, могут опросить свои серверы относительно входящих элементов при выполнении в фоновом режиме; если сообщение готово просмотреть, или обновление готово загрузить, они могут обработать данные по мере необходимости и уведомить пользователей в подходящих случаях.

Локальное уведомление является экземпляром UILocalNotification или NSUserNotification с тремя общими видами свойств:

Перечисление 2-9 описывает эти свойства в программируемой подробности. После того, как приложение создало объект локального уведомления, оно может или запланировать его с операционной системой или сразу представить его.

Каждое приложение на устройстве ограничивается 64 запланированными локальными уведомлениями. Система отбрасывает запланированные уведомления сверх этого предела, сохраняя только 64 уведомления, которые будут стрелять как можно скорее. Повторяющиеся уведомления обрабатываются как единственное уведомление.

Больше об удаленных уведомлениях

Приложение iOS или Mac часто является частью объемного приложения на основе клиент-серверной модели. Клиентская сторона приложения установлена на устройстве или компьютере; серверная сторона приложения имеет основную функцию предоставления данных его клиентским приложениям, и следовательно названа провайдером. Клиентское приложение периодически соединяется с его провайдером и загружает любые данные, ожидающие его. Электронная почта и приложения для социальных сетей являются примерами этой клиент-серверной модели.

Но что, если приложение не подключено к его провайдеру или даже работе устройства или компьютера, когда провайдер имеет новые данные для него для загрузки? Как это узнает об этих данных ожидания? Удаленный (или нажатие) уведомления являются решением этой дилеммы. Удаленное уведомление является коротким сообщением, что провайдер поставил операционной системе устройства или компьютера; операционная система, в свою очередь, может сообщить пользователю клиентского приложения, что существуют данные, которые будут загружены, сообщение, которое будет просматриваться и т.д. Если пользователь активирует эту опцию (на iOS), и приложение должным образом регистрируется, уведомление поставлено операционной системе и возможно приложению. Apple Push Notification service (APNs) является основной технологией для функции удаленного уведомления.

Удаленные уведомления служат почти такой же цели как фоновому приложению в настольной системе, но без дополнительных издержек. Для приложения, в настоящее время не работающего — или, в случае iOS, не работая на переднем плане — уведомление происходит косвенно. Операционная система получает удаленное уведомление от имени приложения и предупреждает пользователя. После того, как предупрежденный, пользователи могут принять решение запустить приложение, тогда загружающее данные с его провайдера. Если приложение работает, когда уведомление входит, приложение может принять решение обработать уведомление непосредственно.

Как его имя предполагает, служба Apple Push Notification использует удаленный проект для поставки удаленных уведомлений устройствам и компьютерам. Проект нажатия отличается от своего противоположного, проекта получения по запросу, в этом, получатель уведомления пассивно прислушивается к обновлениям вместо того, чтобы активно опросить относительно них. Проект нажатия делает возможным широкое и своевременное распространение информации с немногими проблемами масштабируемости свойственный с проектами получения по запросу. APNs использует персистентное IP-соединение для реализации удаленных уведомлений.

Большая часть удаленного уведомления состоит из полезной нагрузки: список свойств, содержащий APNs-определенные свойства, указывающие, как должен быть уведомлен пользователь. По причинам производительности полезная нагрузка является сознательно маленькой. Несмотря на то, что можно определить пользовательские свойства для полезной нагрузки, Вы никогда не должны использовать механизм удаленного уведомления для транспорта данных, потому что не гарантируется поставка удаленных уведомлений. Для больше на полезной нагрузке, посмотрите Полезную нагрузку Уведомления.

APNs сохраняет последнее уведомление, которое он получает от провайдера для приложения на устройстве; таким образом, если устройство или компьютер прибывают онлайн и не получили уведомление, APNs продвигает сохраненное уведомление ему. Устройство рабочий iOS получает удаленные уведомления и по Wi-Fi и по сотовым соединениям; компьютер рабочий OS X получает удаленные уведомления и по Wi-Fi и по соединениям Ethernet.

Добавление опции удаленного уведомления к Вашему приложению требует, чтобы Вы получили надлежащие сертификаты из Задействованного Центра или Программы Разработчика Программы или Mac Разработчика iOS и затем записали необходимый код для клиента и сторон провайдера приложения. Настройка и Разработка объясняет шаги настройки и установки и Связь Провайдера со Службой Уведомления Нажатия Apple и Планированием, Регистрацией, и Обработка Уведомлений описывает подробные данные реализации.