watchOS уведомления в XamarinwatchOS Notifications in Xamarin

Приложения Watch могут получать уведомления, если их поддерживает содержащего приложения iOS.Watch apps can receive notifications if the containing iOS app supports them. Нет встроенных уведомлений обработки, поэтому не требуется для добавления поддержки дополнительных уведомлений, описанных ниже, тем не менее если вы хотите настроить нужное поведение и внешний вид читайте дальше.There is built-in notification handling so you do not need to add the additional notification support described below, however if you wish to customize notification behavior and appearance then read on.

Ссылаться на iOS уведомления doc, Дополнительные сведения о добавлении поддержка уведомлений в приложение iOS в решении.Refer to the iOS Notifications doc for more information on adding notification support to the iOS app in your solution.

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

На раскадровке контроллеры уведомления имеют специальный тип перехода, их активации.On the storyboard notifications controllers have a special type of segue triggering them. При перетаскивании нового контроллера интерфейс уведомлений на раскадровка будет иметь присоединенного объекта перехода:When you drag a new Notification Interface Controller onto a storyboard it will automatically have a segue attached:

Когда уведомление segue выбран можно изменить его свойства:When the notification segue is selected you can edit its properties:

После настройки контроллера, он может выглядеть как в следующем примере из WatchKitCatalog:After you have customized the controller it may look like this example from the WatchKitCatalog:

Существует два типа уведомлений:There are two types of notification:

  • Внешний вид, Short -непрокручиваемый статического представления, определенные системой.Short-look - non-scrollable static view defined by the system.

  • Внешний вид, долго - прокручиваемым, настраиваемые представления, определенные пользователем!Long-look - scrollable, customizable view defined by you! Можно указать более простой и статические версии и более сложные динамические версии.A simpler, static version and a more complex dynamic version can be specified.

Short внешний вид, контроллер уведомленийShort-Look Notification Controller

Внешний вид, short пользовательский Интерфейс состоит из значок приложения, имя приложения и строка заголовка уведомления.The short-look UI consists of just the app icon, app name and the notification title string.

Если пользователь не будет пропускать уведомления, система автоматически переключается на внешний вид, длительно уведомление, с дополнительными сведениями.If the user does not ignore the notification, the system will automatically switch to a long-look notification that provides more information.

Внешний вид долго контроллера уведомленийLong-Look Notification Controller

Операционная система определяет, для отображения статического или динамического представления на основе ряда факторов.The OS decides whether to display the static or dynamic view based on a number of factors. Необходимо указать статический интерфейс и при необходимости можно также включать динамический интерфейс для уведомлений.You must provide a static interface, and can optionally also include a dynamic interface for notifications.

StaticStatic

Статические представление должно быть легко и быстро для отображения.The static view should be simple and quick to display.

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

Динамическое представление может отображать больше данных и обеспечивать более интерактивным.The dynamic view can display more data and provide more interactivity.

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

Уведомления могут поступать с удаленного сервера (службы Push-уведомлений Apple, или APNS) или могут создаваться локально в приложении iOS.Notifications can come from a remote server (Apple Push Notifications Service, or APNS) or can be generated locally in the iOS app.

Ссылаться на Пошаговое руководство по уведомлениям iOS пример создания локальных уведомлений и WatchNotifications пример рабочий пример.Refer to the iOS Notifications walkthrough for an example of how to generate local notifications, and the WatchNotifications sample for a working example.

Необходимо иметь локальные уведомления AlertTitle отображение на Apple Watch - AlertTitle строка отображается в интерфейсе внешний вид, Short.Local notifications must have the AlertTitle set to be displayed on the Apple Watch - the AlertTitle string is displayed in the Short-Look interface. Как AlertTitle и AlertBody отображаются в списке уведомлений; и AlertBody интерфейса внешний вид, долго.Both the AlertTitle and AlertBody are displayed in the notifications list; and the AlertBody is displayed in the Long-Look interface.

На этом снимке экрана показано AlertTitle отображаются в списке уведомлений и AlertBody долго внешний вид интерфейса (с помощью пример кода):This screenshot shows the AlertTitle being displayed in the notifications list, and the AlertBody displayed in the Long-Look interface (using the sample code):

Тестирование уведомленияTesting Notifications

Уведомления (локальные и удаленные) можно только правильно протестировать на устройстве, однако их можно имитировать с помощью .json файл в симуляторе iOS.Notifications (both local and remote) can only be properly tested on a device, however they can be simulated using a .json file in the iOS Simulator.

Тестирование производительности на Apple WatchTesting on Apple Watch

При тестировании уведомлений на Apple Watch, помните, что документации Apple указано следующее:When testing notifications on an Apple Watch, remember that Apple's documentation states the following:

По прибытии одно из уведомлений о локальном или удаленном вашего приложения на устройстве пользователя iPhone iOS определяет, для отображения этого уведомления на iPhone или на Apple Watch.When one of your app’s local or remote notifications arrives on the user’s iPhone, iOS decides whether to display that notification on the iPhone or on the Apple Watch.

Это alluding к тому факту, что iOS решает ли уведомление будет отображаться на устройстве iPhone или в Watch.This is alluding to the fact that iOS decides whether a notification will appear on the iPhone or on the Watch. Если парном iPhone активна при получении уведомления, уведомления, вероятнее всего, отображаемый на iPhone и не направляются в часы.If the paired iPhone is active when a notification is received, the notification is likely to be displayed on the iPhone and not routed to the Watch.

Чтобы убедиться, что уведомление отображается в watch, отключите на экране iPhone (один раз, нажав кнопку питания) или разрешить ему переходят в спящий режим.To ensure the notification appears on the watch, turn off the iPhone screen (pressing the power button once) or let it go to sleep. Если парных Контрольное значение находится в диапазоне, питания и является надет на вас по рукам, уведомления будут направляться существует и включаться в часы (сопровождается слабая).If the paired Watch is in range, has power and is being worn on your wrist, the notification will be routed there and appear on the Watch (accompanied by a subtle ).

Тестирование на симуляторе iOSTesting on the iOS Simulator

Вы необходимо предоставляют полезные данные JSON тестирования при тестировании режим уведомлений в симуляторе iOS.You must provide a test JSON payload when testing notification mode in the iOS Simulator. Задайте путь аргументы выполнения пользовательских окно в Visual Studio для Mac.Set the path in the Custom Execution Arguments window in Visual Studio for Mac.

Visual Studio для Mac будет отображаются дополнительные параметры, когда задано расширение просмотра запускаемым проектом.Visual Studio for Mac will display additional options when a watch extension is set as the Startup project. Щелкните правой кнопкой мыши на проект расширения контрольных значений и выберите запуска с > пользовательские параметры... :Right-click on the watch extension project and choose Run With > Custom Parameters...:

Откроется аргументы выполнения окно, содержащее WatchKit вкладки. Выберите уведомления и предоставляют полезные данные JSON, нажмите клавишу Execute для запуска приложения watch в симуляторе:This opens the Execution Arguments window which contains a WatchKit tab. Select Notification and provide a JSON payload, then press Execute to start the watch app in the simulator:

Если тестирование выполняется в симуляторе файлом по умолчанию полезные данные JSON, контроллер уведомлений по умолчанию выглядит следующим образом:The default notification controller looks like this when testing on the simulator with the default payload JSON file:

Можно также использовать командной строки запустить симулятор iOS.It is also possible to use the command line to start the iOS Simulator.

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

В каталога контрольного значения Kit существует пример приведен пример полезных данных JSON файла NotificationPayload.json (перечислены ниже).In the Watch Kit Catalog sample there is an example payload JSON file NotificationPayload.json (listed below).

{
    "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."
    }