Не удается получить уведомление в iOS [Firebase]

Я использую Firebase Cloud Messaging и создаю cron для своего уведомления вместо использования консоли Firebase. Мне интересно, могу ли я использовать тот же json, который я использовал для Android. В настоящее время мое устройство Android получает уведомление, которое я отправляю, но в моей iOS это не так. Мне интересно, потому что некоторые параметры, которые я использовал, например, в объекте notification, например icon, предназначены только для платформы Android, влияет ли это на результат?

Мой почтовый запрос выглядит так

{
    "registration_ids" : $ids,
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark"
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
} 

ОБНОВЛЕНИЕ

Как и было предложено, я создал два разных cron для iOS и Android, в своей iOS я просто удалил параметр icon в файле json. Но все же я не могу получить никакого уведомления.

Также под Capabilities Tab -> Push Notifications я переключаю его ON, также в Background Modes-> Remote notifications.


person natsumiyu    schedule 02.06.2016    source источник
comment
Структура данных уведомления iOS отличается. Таким образом, это не будет работать для iOS. Вам нужно создать два разных задания cron, одно для iOS, а другое для Android.   -  person Prerak Sola    schedule 02.06.2016
comment
@PrerakSola, могу ли я получить образец структуры для этого?   -  person natsumiyu    schedule 03.06.2016
comment
Обратитесь к этому: developer.apple.com/library/mac/documentation/   -  person Prerak Sola    schedule 03.06.2016
comment
@PrerakSola вместо использования объекта notification и data должен ли я изменить его на aps?   -  person natsumiyu    schedule 03.06.2016
comment
Приоритет необходим для iOS, если приложение находится в фоновом режиме: stackoverflow.com/questions/37830621/   -  person DiAvisoo    schedule 29.06.2016
comment
Чтобы push-уведомление работало на iOS, необходимо установить высокий приоритет. Ссылка: stackoverflow. ком/вопросы/37332415/   -  person Big Pumpkin    schedule 28.07.2016


Ответы (3)


Вы можете использовать один и тот же json как для Android, так и для iOS. Firebase Cloud Messaging будет использовать соответствующие параметры для каждой платформы.

пример:

  • icon будет удален из сообщений, предназначенных для iOS, поскольку эта платформа не поддерживает изменение значка.

  • sound должно быть именем файла с расширением (расширение требуется для ios). Firebase удалит расширение при нацеливании на устройство Android.

Что касается сообщений, которые не доставляются на iOS, попробуйте увеличить параметр priority.
https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json

Когда приложение ios находится в фоновом режиме, Firebase использует APN для доставки сообщения, а APN часто задерживает сообщения, не имеющие высокого приоритета.

Если это не сработает, проверьте конфигурацию сертификата APNs.

person Diego Giorgini    schedule 03.06.2016

Чтобы Firebase push работал на iOS, вы должны установить priority на high. Ссылка: Невозможно отправлять push-уведомления с помощью серверного API

person Big Pumpkin    schedule 28.07.2016

В моем json я добавил объект aps

'aps' => array(
                'alert' => $messageText,
                'badge' => $badge,
                'sound' => 'default',
                'id' => $id
            ),
person natsumiyu    schedule 03.06.2016