Paylod для тихого push-уведомления ios для обновления значка элемента панели вкладок с помощью облачной функции Firebase в JavaScript - PullRequest
0 голосов
/ 17 декабря 2018

У меня все push-уведомления работают нормально.

Но чего не хватает, так это возможности обрабатывать тихие push-уведомления, когда приложение находится в фоновом режиме, и пользователю не нужно нажимать на уведомление, когда оно появляется для обработки уведомления.

Ниже приведен код полезной нагрузки из моей развернутой облачной функции Firebase, написанный на JavaScript, но он не работает.Уведомление отображается, когда приложение работает в фоновом режиме, но для обновления значка элемента панели вкладок не вызываются методы делегатов.

Я понимаю, что для того, чтобы включить это, мне нужно добавить флаг content-available к моемуполезная нагрузка.

Я включил в приложение фоновую выборку и удаленные уведомления и объявил userNotificationCenter willPresent и userNotificationCenter didReceive метод делегата.

const payload = {
            notification: {
              title: "I'm " + senderName,
              body: notificationBody,
              'content-available' : 1
            },
            data: {
              SENDER_NAME: senderName,
              SENDER_ID: fromId,
              NOTIFICATION: 'invite'

            }//end data
        }//end payload

1 Ответ

0 голосов
/ 18 декабря 2018

Я нашел решение своего вопроса с помощью ссылки на вопрос согласно комментариям выше.Поскольку это функция FCM, content_available следует указывать в options вместо payload

            const payload = {
                notification: {
                  title: senderName + " sent you a message",
                  body: notificationBody
                },
                data: {
                  SENDER_NAME: senderName,
                  SENDER_ID: fromId,
                  NOTIFICATION: 'message'

                }//end data
            }//end payload

            const options = {
              content_available: true
            }

//send message
        return admin.messaging().sendToDevice(registrationTokens, payload, options).then( response => {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...