2015-05-23 2 views
7

При создании новой компании Apple App Watch в Xcode, следующий APNS пример полезной нагрузки создаются:Payload для Watch App уведомления

{ 
    "aps": { 
     "alert": { 
      "body": "Test message", 
      "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 select them when choosing to debug the notification interface of your Watch App." } 

Я смущен использование тела и названия в предупредительном словаре. В приложениях iOS обычно используется следующая полезная нагрузка:

{ 
    "aps": { 
     "alert": "Test message", 
     "title": "Opt title", 
     "category": "default" 
    }, 
    "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 select them when choosing to debug the notification interface of your Watch App." 
} 

Каков правильный путь? Хотя файл полезной нагрузки по умолчанию создается таким образом, Apple documentation предоставляет скриншот, используя последний вариант.

+0

Я могу подтвердить, что первый вариант действительно работает. Это форма, которую мы используем для наших полезных нагрузок. Наше приложение работает в магазине. – rmp

+0

Да, но я могу подтвердить, что второй тоже работает. – edwardmp

ответ

1

В Local and Remote Notification Programming Guide (таблица 3-1), тип значения alert ключа может быть строки или словаря, как сказал Dhawal, оба формат является правильным.

Если alert является словарь, он может содержать title, body, title-loc-key и т.д. (таблица 3-2). Какова цель ключа title? Этот ключ был добавлен в iOS 8.2, который содержит WatchKit, а WatchKit имеет интерфейс уведомления о коротком просмотре, свободного места для полного уведомления недостаточно, поэтому Apple Watch использует title для описания цели уведомления и отображения в уведомлении о коротком просмотре.

В этой картине «Грей День рождения» в alerttitle. Поскольку вы не можете видеть уведомление о коротком просмотре в симуляторе, вы должны проверить результат title ключ в REAL Apple Watch.

+0

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

0

Основываясь на документации компании Apple, вот следующие ключи, которые вы можете иметь в aps словаре: alert, badge, sound и content-available. А вот ключи, которые вы можете иметь в alert словаре: название, тело, название-LOC-арг и т.д. Вы можете проверить его на принудительное Руководстве по программированию Notification для получения дополнительной информации здесь: Push Notification Programming Guide

Проверить это, а также для ваших WatchKit Extension, Apple Watch Programming Guide

Кроме того, второй способ, которым вы описываете, должен быть правильным. Я просто создаю приложение Watch и включает в себя примерную полезную нагрузку. И category помещается внутри aps за пределами alert, который должен быть неправильным в этом случае. Надеюсь это поможет. Это означает, что aps может содержать только те четыре свойства по умолчанию. Итак, category должен содержаться внутри alert.

+0

Эти документы выглядят устаревшими, потому что ключ категории также не упоминается. – edwardmp

+0

На самом деле это не так. Из ** Руководства по программированию Apple Watch ** также предлагается перейти к ** Программе ** Push Notification Programming Guide ** в качестве ссылки. –

+0

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

0

Apple Documentation for Push Notification Payload упомянул записку,

Примечание: Если вы хотите, чтобы устройство отображения текста сообщения как есть в предупреждения, имеет как Близкое и View кнопки, а затем указать строку , как прямое значение предупреждения. Не указывайте словарь как значение предупреждения, если словарь обладает только свойством body.

Как указано выше, оба формата являются правильными, но мы должны использовать второй формат (предупреждение с прямым текстовым значением вместо словаря), когда вам нужно только свойство body в Alert. Если вам нужно использовать другие дочерние свойства Alert, такие как body, title, ..., тогда вы должны использовать первый формат (Alert со словарем как значение).

Смежные вопросы