0

Я только начал работать над уведомлениями на iOS, и кажется, что яблоко определило формат для полезной нагрузки для получения уведомлений.Является ли aps-словарь необходимым в полезной нагрузке уведомления iOS? Можем ли мы иметь такую ​​же полезную нагрузку для iOS и Android?

Так что в настоящее время я использую эту полезную нагрузку, и все работает должным образом. Я получаю название, субтитры, звук тела, изображение.

{"aps" : { 
     "alert" : { 
      "title" : "Introduction To Notification", 
      "subtitle" : "Session 707", 
      "body" : "New Notification Look Amazing" 
     }, 
     "sound" : "default", 
     "category" : "message", 
     "badge" : 1, 
     "mutable-content": 1 
    }, 
    "attachment-url": "https://pusher.com/static_logos/320x320.png" 
} 

Скажем, я хочу иметь одну полезную нагрузку для Android и iOS.

Существует ли стандартный формат, определенный в Android для уведомлений, или вы можете установить любые данные в Android, и клиент должен вручную обрабатывать и отображать эти уведомления?

Как создать полезную нагрузку, которая работает для обоих?

+0

@NayanSrivastava для прошивки, яблоко установил специальные клавиши для отображения предупреждений. Это тот же случай для Android, или мы можем дать любой JSON и показать данные так, как мы хотим. –

+0

Полезная нагрузка, которую вы показываете: вы отправляете это с консоли firebase? И вы следовали примеру кода Firebase (FCM), чтобы отправить его? Или вы говорите, что сначала выполняете тест iOS, основываясь на примере использования push-уведомлений Apple (APN)? Если мой вопрос не ясен, тогда покажите код, который вы используете в приложении iOS, чтобы уведомления работали. – ToolmakerSteve

+2

[Похожие вопросы] (http://stackoverflow.com/q/41562823/199364). Разверните комментарии - по-видимому, ответ «Нет, отправьте отдельные полезные данные для пользователей Android и iOS». Я добавил комментарий там, спрашивая, КАК это сделать. – ToolmakerSteve

ответ

2

Обновление для межплатформенной полезной нагрузки: Была добавлена ​​последняя функция для FCM, которая дает возможность предоставлять определенные параметры для определенных платформ, называемых Platform Overrides.


Полезная нагрузка образца вы вывесили, кажется, в линии с official parameters for APNs. При использовании GCM или FCM параметры, которые будут использоваться, различны (см. Ссылки).

Существует ли стандартный формат, определенный в Android для уведомлений, или вы можете установить любые данные в Android, и клиент должен вручную обрабатывать и отображать эти уведомления?

Это зависит от того, какой тип полезной нагрузки сообщения вы планируете использовать. Есть 2 types of Messages для GCM/FCM, notification и data.

notification сообщения имеют только предопределенный набор доступных параметров, в то время как сообщения data могут использоваться для создания пользовательских пар ключ-значение. Оба обычно обрабатываются клиентом, но обратите внимание, что поведение для Android и iOS отличается в зависимости от используемого типа сообщения (см. Ссылки).

Как создать полезную нагрузку, которая работает для обоих?

Как я уже упоминал в разделе комментариев в other post:

Вы должны будете сделать отображение в вашем собственном сервере баз данных/приложений. Да. То, что я думал здесь, было каждый раз, когда маркер регистрации генерируется на стороне клиентского приложения, вы отправляете его на свой сервер базы данных/приложения по типу устройства (т. Е. «Android», «iOS»). Поэтому, когда вы будете отправлять сообщения, сначала вам нужно будет проверить тип устройства. Я сказал, что это больше работает, но это верный способ дать вам контроль над вещами. AFAIK, разработчик несет ответственность за отслеживание регистрационных токенов и любых деталей, которые должны быть связаны с ним.

+0

, поэтому вы предлагаете использовать отдельные полезные нагрузки для iOS и Android, верно? –

+0

@SudhanshuGupta Yup. –

+0

Спасибо за информацию –

0

Вам не разрешено помещать пользовательские теги внутри тега aps.Вот что говорится в документах:

Провайдеры могут указывать собственные значения полезной нагрузки вне пространства имен APS, зарезервированных Apple. Пользовательские значения должны использовать структурированные и примитивные типы JSON: словарь (объект), массив, строку, число и логическое значение. Так что в вашем случае вы должны сделать что-то вроде:

{ 
    "aps": { 
     "alert": "Hello World", 
     "sound": "default" 
    }, 
    "Person": { 
     "Address": "Your address", 
     "Name": "Your Name", 
     "Number": "XXXXXXXXXX" 
    } 
} 

Таким образом, вы можете прочитать пользовательскую полезную нагрузку с поиском для него является ключевой в главном формате JSON, а не в «АПСЕ»: