Уведомления watchOS в Xamarin

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

Дополнительные сведения о добавлении поддержки уведомлений в приложение iOS в решении см. в документации по уведомлениям iOS.

Создание контроллеров уведомлений

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

Новый контроллер интерфейса уведомлений с присоединенным сеге

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

Выбрана segue уведомления

После настройки контроллера он может выглядеть следующим образом из WatchKitCatalog:

Свойства уведомления

Существует два типа уведомлений:

  • Короткий вид — не прокручиваемое статическое представление, определенное системой.

  • Длинный вид — прокручиваемое, настраиваемое представление, определенное вами! Можно указать более простую статическую версию и более сложную динамическую версию.

Контроллер уведомлений short-Look

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

Если пользователь не игнорирует уведомление, система автоматически переключится на уведомление с длинным видом, которое предоставляет дополнительные сведения.

Контроллер уведомлений long-Look

ОС решает, следует ли отображать статическое или динамическое представление на основе ряда факторов. Необходимо предоставить статический интерфейс и при необходимости включить динамический интерфейс для уведомлений.

Статические

Статическое представление должно быть простым и быстрым для отображения.

Статическое представление

Динамический

Динамическое представление может отображать больше данных и обеспечить более интерактивное взаимодействие.

Динамическое представление

Создание уведомлений

Уведомления могут поступать с удаленного сервера или создаваться локально в приложении iOS.

Пример создания локальных уведомлений см. в пошаговом руководстве по уведомлениям iOS.

Локальные уведомления должны AlertTitle отображаться в Apple Watch. AlertTitle Строка отображается в интерфейсе Short-Look. AlertTitle AlertBody Оба элемента отображаются в списке уведомлений, а также AlertBody отображаются в интерфейсе Long-Look.

На этом снимке экрана показан AlertTitle отображаемый в списке уведомлений и AlertBody отображаемый в интерфейсе Long-Look:

На этом снимке экрана показана функция AlertTitle, отображаемая в списке уведомлений Оповещение, отображаемое в интерфейсе Long-Look

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

Уведомления (как локальные, так и удаленные) можно тестировать только на устройстве, однако их можно имитировать с помощью файла .json в симуляторе iOS.

Тестирование на Apple Watch

При тестировании уведомлений на Apple Watch помните, что документация Apple утверждает следующее:

Когда одно из локальных или удаленных уведомлений вашего приложения поступает на iPhone пользователя, iOS решает, следует ли отображать это уведомление на iPhone или на Apple Watch.

Это указывает на тот факт, что iOS решает, будет ли уведомление отображаться на iPhone или в Watch. Если парный iPhone активен при получении уведомления, уведомление, скорее всего, будет отображаться на iPhone и не перенаправлено в Watch.

Чтобы убедиться, что уведомление отображается в часовом режиме, отключите экран iPhone (один раз нажмите кнопку питания) или отпустите его в спящий режим. Если парные часы находится в диапазоне, имеет мощность и носится на запястье, уведомление будет перенаправлено там и появляется на часы (сопровождается тонким).

Тестирование на симуляторе iOS

При тестировании режима уведомлений в симуляторе iOS необходимо предоставить тестовую полезные данные JSON. Задайте путь в окне настраиваемых аргументов выполнения в Visual Studio для Mac.

Visual Studio для Mac будут отображаться дополнительные параметры при установке расширения часов в качестве Запуск проекта. Щелкните правой кнопкой мыши проект расширения часов и выберите команду "Выполнить с настраиваемыми > параметрами"...:

Выполнение с настраиваемыми свойствами

Откроется окно "Аргументы выполнения" , содержащее вкладку WatchKit . Выберите уведомление и предоставьте полезные данные JSON, а затем нажмите клавишу Execute , чтобы запустить приложение для просмотра в симуляторе:

Выбор полезных данных уведомлений по умолчанию

Контроллер уведомлений по умолчанию выглядит следующим образом при тестировании на симуляторе с помощью JSON-файла полезных данных по умолчанию:

Пример уведомления

Можно также использовать командную строку для запуска симулятора iOS.

Пример полезных данных уведомления

Ниже показан пример полезных данных JSON-файла NotificationPayload.json :

{
    "aps": {
        "alert": "Test message content",
        "title": "Optional title",
        "category": "myCategory"
        },

        "WatchKit Simulator Actions": [
        {
            "title": "First Button",
            "identifier": "firstButtonAction"
        }
        ],

        "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to choose between them in when selecting to debug the notification interface of your Watch App."
    }