Поделиться через


Введение в watchOS

Примечание.

Ознакомьтесь с введением в watchOS 3 , чтобы ознакомиться с последними функциями.

Сведения о watchOS

Решение для приложений watchOS содержит 3 проекта:

  • Расширение Watch — проект, содержащий код для приложения наблюдения.
  • Просмотр приложения — содержит раскадровку пользовательского интерфейса и ресурсы.
  • Родительское приложение iOS — это обычное приложение i Телефон. Приложение-наблюдатель и расширение упаковываются в приложение i Телефон для доставки в часы пользователя.

В приложениях watchOS 1 код в расширении выполняется на i Телефон — Apple Watch фактически является внешним дисплеем. приложения watchOS 2 и 3 работают полностью в Apple Watch. Это различие показано на схеме ниже:

Разница между watchOS 1 и watchOS 2 (и больше) показана на этой схеме.

Независимо от того, какая версия watchOS ориентирована, в панели решения Visual Studio для Mac полное решение будет выглядеть примерно так:

Панель решения

Родительское приложение в решении watchOS — это обычное приложение для iOS. Это единственный проект в решении, которое отображается на телефоне. Варианты использования для этого приложения включают учебники, административные экраны и фильтрацию среднего уровня, кэширование и т. д. Однако пользователь может установить и запустить приложение-наблюдатель или расширение, не открыв родительское приложение, поэтому, если вам нужно, чтобы родительское приложение выполнялось для однократной инициализации или администрирования, необходимо запрограммировать приложение или расширение для просмотра, чтобы сообщить пользователю, что.

Хотя родительское приложение предоставляет приложение-наблюдатель и расширение, они выполняются в разных песочницах.

В watchOS 1 они могут совместно использовать данные через общую группу приложений или через статическую функциюWKInterfaceController.OpenParentApplication, которая активирует UIApplicationDelegate.HandleWatchKitExtensionRequest метод в родительском приложении (см. сведения о работе с родительским приложениемAppDelegate).

В watchOS 2 или более поздней версии платформа watch Подключение ivity используется для взаимодействия с родительским приложением с помощью WCSession класса.

Жизненный цикл приложения

В расширении часов для каждого сцены Раскадровки WKInterfaceController создается подкласс класса.

Эти WKInterfaceController классы аналогичны UIViewController объектам в программировании iOS, но не имеют того же уровня доступа к представлению. Например, нельзя динамически добавлять элементы управления в пользовательский интерфейс или реструктурировать их. Однако можно скрыть и показать элементы управления и, используя некоторые элементы управления, изменить их размер, прозрачность и параметры внешнего вида.

Жизненный WKInterfaceController цикл объекта включает следующие вызовы:

  • Пробуждение . Вы должны выполнить большую часть инициализации в этом методе.
  • WillActivate : вызывается незадолго до появления приложения "Наблюдатель". Используйте этот метод для выполнения инициализации последнего момента, запуска анимации и т. д.
  • На этом этапе появится приложение "Контрольные данные", и расширение начинает отвечать на входные данные пользователя и обновлять отображение приложения "Контрольные" на логику приложения.
  • DidDeactivate После того, как приложение Watch было отклонено пользователем, этот метод вызывается. После возврата этого метода элементы управления пользовательским интерфейсом нельзя изменить до следующего вызова WillActivate . Этот метод также вызывается, если подключение к i Телефон нарушено.
  • После деактивации расширения он недоступен для вашей программы. Ожидающие асинхронные функции не будут вызываться. Расширения комплекта контрольных пакетов могут не использовать режимы фоновой обработки. Если программа повторно активируется пользователем, но приложение не было завершено операционной системой, будет вызван WillActivateпервый метод.

Обзор жизненного цикла приложений

Типы пользовательского интерфейса

Существует три типа взаимодействия, которые пользователь может иметь с приложением наблюдения. Все программируются с помощью пользовательских подклассовWKInterfaceController, поэтому ранее обсуждаемая последовательность жизненного цикла применяется универсально (уведомления программируются с подклассами, которые сами по себе являются подклассамиWKInterfaceControllerWKUserNotificationController):

Нормальное взаимодействие

Большинство взаимодействий с приложением или расширением будет с вложенными классамиWKInterfaceController, которые вы пишете, чтобы соответствовать сценам в интерфейсе.раскадровки приложения наблюдения. Подробно описано в статьях об установке и начале работы. На следующем рисунке показана часть раскадровки примера. Для каждой сцены, показанной здесь, в проекте расширения есть соответствующий пользовательский WKInterfaceController (LabelDetailController, ButtonDetailController, SwitchDetailControllerи т. д.).

Примеры нормального взаимодействия

Notifications

Уведомления — это основной вариант использования Apple Watch. Поддерживаются локальные и удаленные уведомления. Взаимодействие с уведомлениями происходит на двух этапах с именем Short-and Long-Look.

Короткие внешние данные отображаются кратко и отображают значок приложения для просмотра, его имя и заголовок (как указано с WKInterfaceController.SetTitle).

Long Look объединяет системную область косой черты и кнопку "Закрыть" с пользовательским содержимым на основе раскадровки.

WKUserNotificationInterfaceController расширяется WKInterfaceController с помощью методов DidReceiveLocalNotification и DidReceiveRemoteNotification. Переопределите эти методы, чтобы реагировать на события уведомлений.

Дополнительные сведения о проектировании пользовательского интерфейса уведомлений см. в руководстве по интерфейсу Apple Watch

Примеры уведомлений

Размеры экрана

Apple Watch имеет два размера лица: 38mm и 42mm, как с соотношением дисплея 5:4, так и дисплеем Retina. Их доступные размеры:

  • 38mm: 136 x 170 логических пикселей (272 x 340 физических пикселей)
  • 42mm: 156 x 195 логических пикселей (312 x 390 физических пикселей).

Используется WKInterfaceDevice.ScreenBounds для определения того, на каком экране запущено приложение watch.

Как правило, проще разрабатывать текст и макет с более ограниченным отображением 38mm, а затем увеличивать масштаб. Если начать с более крупной среды, масштабирование может привести к уродливому перекрытию или усечению текста.

Дополнительные сведения о работе с размерами экрана.

Ограничения watchOS

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

Некоторые другие известные ограничения / часто задаваемые вопросы:

  • Apple не позволит 3-сторонним пользовательским лицам смотреть лица.

  • ИНТЕРФЕЙСы API, позволяющие наблюдателям управлять iTunes на подключенном телефоне, являются частными.

Дополнительные материалы

Ознакомьтесь с документацией из Apple: