Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Руководство по программированию часов Apple

PDF
На этой странице

Основы уведомления

Часы Apple в полной мере пользуются существующей интерактивной поддержкой уведомления на iOS. Если Ваше приложение для iOS поддерживает уведомления, Часы Apple выводят на экран те уведомления в подходящее время. Когда одно из локальных или удаленных уведомлений Вашего приложения поступает в iPhone пользователя, iOS решает, вывести ли на экран то уведомление на iPhone или на Часах Apple. Для уведомлений, отправленных в Часы Apple, система позволяет, пользователь знает тонко, что уведомление доступно. Если пользователь принимает решение просмотреть уведомление, система выводит на экран сокращенную версию уведомления сначала, сопровождаемый более подробной версией. Пользователь может отклонить подробное уведомление, запустить Ваше приложение WatchKit или действовать на уведомление путем ответвления доступной кнопки действий.

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

Интерфейс Короткого Взгляда

Когда пользователь сначала смотрит на уведомление, система выводит на экран интерфейс короткого взгляда, пример которого показан на рисунке 15-1. Интерфейс короткого взгляда является экраном непрокрутки, который не может быть настроен. Система использует шаблон для отображения имени приложения и значка вместе со строкой заголовка, сохраненной в локальном уведомлении или удаленной полезной нагрузке уведомления. Если пользователь продолжает смотреть на уведомление, системные переходы быстро от интерфейса короткого взгляда до интерфейса длинного взгляда.

Изобразите 15-1A интерфейс короткого взгляда image: ../Art/shortlook_calendar_2x.png

Строка заголовка, используемая в коротком взгляде, обеспечивает краткую индикацию относительно намерения уведомления. Для локальных уведомлений Вы указываете эту строку с помощью alertTitle свойство UILocalNotification объект. Для удаленных уведомлений добавьте title ключ к alert словарь в полезной нагрузке. Для получения дополнительной информации о добавлении строки заголовка к Вашим уведомлениям, см. Локальное и Удаленное Руководство по программированию Уведомления.

Интерфейс Длинного Взгляда

Интерфейс длинного взгляда является экраном с возможностью прокрутки, выводящим на экран содержание уведомления и любые связанные кнопки действий. Если Вы не обеспечиваете пользовательский интерфейс уведомления, Часы Apple выводят на экран интерфейс по умолчанию, включающий Ваш значок приложения, строку заголовка уведомления и предупредительного сообщения. При обеспечении пользовательского интерфейса уведомления Часы Apple выводят на экран пользовательский интерфейс вместо этого.

Интерфейс уведомления длинного взгляда разделен на три области:

  • Пояс является наложением, содержащим имя приложения и значок приложения. Цвет пояса конфигурируем.

  • Предметная область содержит подробную информацию о входящем уведомлении. Для получения информации о том, как настроить содержание в этой области, посмотрите Управление Пользовательским Длинным Интерфейсом Взгляда.

  • Нижняя область содержит кнопку Dismiss и любые кнопки действий, зарегистрированные содержанием приложения для iOS.

Рисунок 15-2 показывает пример уведомления длинного взгляда, содержащего несколько кнопок действий.

Изобразите 15-2A интерфейс уведомления длинного взгляда image: ../Art/longlook_calendar_2x.png

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

Для получения информации о том, как обеспечить пользовательский интерфейс длинного взгляда для Вашего приложения, посмотрите Управление Пользовательским Длинным Интерфейсом Взгляда.

Добавление кнопок действий к уведомлениям

Кнопки действий экономят время для пользователя путем предложения некоторых стандартных ответов для уведомления. Часы Apple используют интерактивные уведомления, зарегистрированные Вашим приложением для iOS для отображения кнопок действий. В iOS 8 и позже, приложения требуются, чтобы регистрировать типы сгенерированных уведомлением предупреждений, они выводят на экран использование a UIUserNotificationSettings объект. При регистрации той информации приложение может также зарегистрировать ряд пользовательских категорий уведомления, включающих действия, которые могут быть выполнены для той категории. Часы Apple используют эту информацию о категории для добавления соответствующих кнопок действий к интерфейсу длинного взгляда.

В Перечислении 15-1 метод регистрирует настройки и категории для демонстрационного приложения для iOS. Этот метод реализует содержание приложения для iOS, не расширением WatchKit, и вызывает делегат приложения для iOS во время запуска. Реализация записана в Swift и показывает создание и регистрацию категории «приглашения», содержащей действия, чтобы принять или отклонить встречающееся приглашение.

Перечисление 15-1Registering действий в содержании приложения для iOS (частичная реализация)
  • func registerSettingsAndCategories() {
  • var categories = NSMutableSet()
  • var acceptAction = UIMutableUserNotificationAction()
  • acceptAction.title = NSLocalizedString("Accept", comment: "Accept invitation")
  • acceptAction.identifier = "accept"
  • acceptAction.activationMode = UIUserNotificationActivationMode.Background
  • acceptAction.authenticationRequired = false
  • var declineAction = UIMutableUserNotificationAction()
  • declineAction.title = NSLocalizedString("Decline", comment: "Decline invitation")
  • declineAction.identifier = "decline"
  • declineAction.activationMode = UIUserNotificationActivationMode.Background
  • declineAction.authenticationRequired = false
  • var inviteCategory = UIMutableUserNotificationCategory()
  • inviteCategory.setActions([acceptAction, declineAction],
  • forContext: UIUserNotificationActionContext.Default)
  • inviteCategory.identifier = "invitation"
  • categories.addObject(inviteCategory)
  • // Configure other actions and categories and add them to the set...
  • var settings = UIUserNotificationSettings(forTypes: (.Alert | .Badge | .Sound),
  • categories: categories)
  • UIApplication.sharedApplication().registerUserNotificationSettings(settings)
  • }

Для получения информации о том, как сконфигурировать категории и действия в Вашем приложении для iOS, см. Локальное и Удаленное Руководство по программированию Уведомления.

Ответ на касания в кнопках действий

Когда пользователь касается кнопки действий для уведомления, система использует информацию в зарегистрированном UIUserNotificationAction объект определить, как обработать действие. Действия могут быть обработаны на переднем плане или фоне, с или не требуя аутентификации пользователя. Приоритетные и фоновые действия обрабатываются по-другому:

Для приоритетных действий важно отметить что Ваш WKUserNotificationInterfaceController подкласс не обрабатывает действие. Выбор приоритетного действия запускает Ваше приложение и загружает контроллер интерфейса для основной точки входа Вашего приложения. Именно этот начальный контроллер интерфейса ответственен за обработку любых действий. Тот контроллер интерфейса должен реализовать handleActionWithIdentifier:forRemoteNotification: и handleActionWithIdentifier:forLocalNotification: методы (как надлежащий) для обработки действий.