WKUserNotificationInterfaceController
Наследование
-
NSObject
-
WKInterfaceController
-
WKUserNotificationInterfaceController
-
NSObject
-
WKInterfaceController
-
WKUserNotificationInterfaceController
Оператор импорта
Swift
import WatchKit
Objective C
@import WatchKit;
Доступность
Доступный в iOS 8.2 и позже.
WKUserNotificationInterfaceController
класс управляет настроенным пользовательским интерфейсом для локального или удаленного уведомления. Приложения, поддерживающие уведомления, могут определить один или несколько подклассов и использовать их для форматирования содержания уведомления по-другому. Например, Вы могли бы использовать пользовательский интерфейс, чтобы вывести на экран пользовательские данные от полезной нагрузки уведомления или добавить связанную графику. Пользовательские интерфейсы не должны включать кнопки, переключатели и другие интерактивные средства управления.
Для создания пользовательского интерфейса уведомления добавьте контроллер интерфейса к файлу раскадровки. Установите класс того контроллера интерфейса к имени Вашего пользовательского подкласса и сконфигурируйте объект категории уведомления. Название категории является значением, которое Вы добавляете к полезной нагрузке удаленного уведомления или присваиваете category
свойство локального уведомления. Когда уведомление поступает с той категорией, Часы, OS выводит на экран Ваш пользовательский контроллер интерфейса уведомления вместо интерфейса уведомления по умолчанию.
Если Ваши действия регистров приложения для iOS для определенного названия категории и уведомления с тем названием категории наступают, WatchKit автоматически выводит на экран кнопки для каждого действия у основания интерфейса уведомления. Кнопки выведены на экран и для Ваших пользовательских интерфейсов уведомления и для интерфейса уведомления по умолчанию. (Поскольку кнопки добавляются автоматически, не добавляйте их сами к Вашему пользовательскому интерфейсу уведомления.) Контроллеры интерфейса уведомления не обрабатывают действия. Когда пользователь касается кнопки, система запускает Ваше приложение, загружает его основной контроллер интерфейса и вызывает тот объект handleActionWithIdentifier:forRemoteNotification:
или handleActionWithIdentifier:forLocalNotification:
метод для обработки действия.
Соедините интерфейсом с параметрами конфигурации разработчика
XCode позволяет Вам сконфигурировать информацию о своем контроллере интерфейса уведомления в Вашем файле раскадровки. Контроллер интерфейса уведомления поддерживает почти все атрибуты, связанные с его родительским классом плюс те в Таблице 1.
Атрибут |
Описание |
---|---|
Имеет динамический интерфейс |
Флажок, указывающий, поддерживается ли динамический интерфейс для уведомлений об этом типе. Динамические интерфейсы выведены на экран, когда это возможно, но WatchKit может отступить к использованию Вашего статического интерфейса из-за ограничений питания или когда Ваше расширение WatchKit не отвечает своевременно. |
Объект категории уведомления, связанный с Вашими контроллерами интерфейса уведомления также, содержит конфигурируемые атрибуты. Таблица 2 перечисляет атрибуты объекта категории уведомления и их значения.
Атрибут |
Описание |
---|---|
Имя |
Имя категории, которую поддерживает этот интерфейс. Для локальных уведомлений это значение, соответствует строке в |
Цвет пояса |
Цвет для применения к поясу наверху длинного интерфейса уведомления взгляда. |
Хочет размытость пояса |
Флажок, указывающий, включает ли пояс эффект размытия по фону. |
Цвет заголовка |
Цвет для применения к тексту, выведенному на экран в поясе. |
Описание |
Строка формата для отображения, когда многократные уведомления о том же типе поступают одновременно. При указании пользовательской строки можно использовать |
Имеет динамический интерфейс |
Флажок, указывающий, поддерживается ли динамический интерфейс для уведомлений об этом типе. Динамические интерфейсы выведены на экран, когда это возможно, но WatchKit может отступить к использованию Вашего статического интерфейса из-за ограничений питания или когда Ваше расширение WatchKit не отвечает своевременно. |
-
Инициализирует и возвращает контроллер интерфейса с помощью указанных удаленных данных уведомления.
Объявление
Swift
init()
Objective C
- (instancetype)init
Возвращаемое значение
Инициализированный контроллер интерфейса.
Обсуждение
Используйте этот метод, чтобы инициализировать Ваш контроллер интерфейса уведомления и подготовить его к дисплею. Необходимо вызвать
super
реализация этого метода сначала. Тот метод создает интерфейсные объекты для выходов, объявленных в Вашем классе и элементах ссылки в Вашей раскадровке.В некоторый момент после инициализации, WatchKit вызывает
didReceiveRemoteNotification:withCompletion:
илиdidReceiveLocalNotification:withCompletion:
метод для поставки полезной нагрузки уведомления.Оператор импорта
Objective C
@import WatchKit;
Swift
import WatchKit
Доступность
Доступный в iOS 8.2 и позже.
-
Поставляет удаленную полезную нагрузку уведомления Вашему контроллеру интерфейса для обработки.
Объявление
Swift
func didReceiveRemoteNotification(_
remoteNotification
: [NSObject : AnyObject], withCompletioncompletionHandler
: (WKUserNotificationInterfaceType) -> Void)Objective C
- (void)didReceiveRemoteNotification:(NSDictionary *)
remoteNotification
withCompletion:(void (^)(WKUserNotificationInterfaceType interface))completionHandler
Параметры
remoteNotification
Удаленный словарь уведомления. Содержание словаря соответствует содержанию полезной нагрузки уведомления и организовано таким же образом. Для получения информации о содержании удаленной полезной нагрузки уведомления см. Локальное и Удаленное Руководство по программированию Уведомления.
completionHandler
Обработчик завершения для сообщения системы, что интерфейс вывести на экран. Выполните этот обработчик завершения в конце своей реализации метода. Если Вы не выполняете этот блок своевременно, система выводит на экран статический интерфейс уведомления Вашего приложения. Этот блок не имеет никакого возвращаемого значения и берет следующий параметр:
interface
Интерфейс уведомления, который будет выведен на экран. Обычно, Вы возвращаете значение
WKUserNotificationInterfaceTypeCustom
от этого метода, но Вы могли бы возвратитьсяWKUserNotificationInterfaceTypeDefault
когда полезная нагрузка уведомления не содержит данные, Вы ожидали.Обсуждение
Прежде, чем вывести на экран Ваш интерфейс уведомления, WatchKit вызывает этот метод для поставки полезной нагрузки входящего удаленного уведомления. Реализуйте этот метод и используйте его, чтобы сохранить словарь уведомления, сконфигурировать Ваш пользовательский интерфейс уведомления и выполниться
completionHandler
блок как можно быстрее. Отказ выполнить обработчик завершения своевременно заставит систему отображать статический интерфейс уведомления Вашего приложения (если предоставленный).WatchKit может вызвать этот метод многократно. Если новое удаленное уведомление с той же категорией поступает, в то время как Ваш интерфейс уведомления активен, WatchKit вызывает метод снова с новой удаленной полезной нагрузкой уведомления.
Оператор импорта
Objective C
@import WatchKit;
Swift
import WatchKit
Доступность
Доступный в iOS 8.2 и позже.
-
Поставляет локальный объект уведомления Вашему контроллеру интерфейса для обработки.
Объявление
Swift
func didReceiveLocalNotification(_
localNotification
: UILocalNotification, withCompletioncompletionHandler
: (WKUserNotificationInterfaceType) -> Void)Objective C
- (void)didReceiveLocalNotification:(UILocalNotification *)
localNotification
withCompletion:(void (^)(WKUserNotificationInterfaceType interface))completionHandler
Параметры
localNotification
Локальное уведомление возражает, что вызвал уведомление.
completionHandler
Обработчик завершения для сообщения системы, что интерфейс вывести на экран. Выполните этот обработчик завершения в конце своей реализации метода. Если Вы не выполняете этот блок своевременно, система выводит на экран статический интерфейс уведомления Вашего приложения. Этот блок не имеет никакого возвращаемого значения и берет следующий параметр:
interface
Интерфейс уведомления, который будет выведен на экран. Обычно, Вы возвращаете значение
WKUserNotificationInterfaceTypeCustom
от этого метода, но Вы могли бы возвратитьсяWKUserNotificationInterfaceTypeDefault
когда полезная нагрузка уведомления не содержит данные, Вы ожидали.Обсуждение
Прежде, чем вывести на экран Ваш интерфейс уведомления, WatchKit вызывает этот метод для поставки полезной нагрузки входящего локального уведомления. Реализуйте этот метод и используйте его, чтобы хранить объект уведомления, сконфигурировать Ваш пользовательский интерфейс уведомления и выполниться
completionHandler
блок как можно быстрее. Отказ выполнить обработчик завершения своевременно заставляет систему отображать статический интерфейс уведомления Вашего приложения (если предоставленный).WatchKit может вызвать этот метод многократно. Если новое локальное уведомление с той же категорией поступает, в то время как Ваш интерфейс уведомления активен, WatchKit вызывает метод снова с новым локальным объектом уведомления.
Оператор импорта
Objective C
@import WatchKit;
Swift
import WatchKit
Доступность
Доступный в iOS 8.2 и позже.
-
Тип уведомления взаимодействует через интерфейс для отображения.
Объявление
Swift
enum WKUserNotificationInterfaceType : Int { case Default case Custom }
Objective C
typedef WKUserNotificationInterfaceType : NSInteger { WKUserNotificationInterfaceTypeDefault, WKUserNotificationInterfaceTypeCustom, } WKUserNotificationInterfaceType;
Константы
-
Default
WKUserNotificationInterfaceTypeDefault
Постоянное указание, что система должна вывести на экран статический интерфейс уведомления Вашего приложения. При возврате этого значения система берет на себя ответственность за отображение содержания уведомления.
Доступный в iOS 8.2 и позже.
-
Custom
WKUserNotificationInterfaceTypeCustom
Постоянное указание, что система должна вывести на экран Ваш пользовательский интерфейс уведомления, если это возможно.
Доступный в iOS 8.2 и позже.
Оператор импорта
Objective C
@import WatchKit;
Swift
import WatchKit
Доступность
Доступный в iOS 8.2 и позже.
-