push-уведомления cordova fcm с использованием функций firebase - PullRequest
0 голосов
/ 13 ноября 2018

Я использую функцию firebase и отправляю уведомление, как показано ниже

 let pushPayload = {
        notification: {
            title: 'Doodles Notification',
            body: "push testing",
            sound: 'default',
            badge: '1'
            }
    };

    //push tokens need to be of customer as well as all the admins in the system. fetch admin push tokens
    admin.messaging().sendToDevice(pushToken, pushPayload).then(
        (resp) => {
                        console.log("push notification sent using test method")
                        return
                }
    ).catch(
        (err) => {
                    console.log("Error sending push notification:" + JSON.stringify(err))
                    return
        }
    )

Приложение на стороне клиента имеет метод, описанный ниже:

  this.fcm.onNotification().subscribe(data => {
            console.log("push message is:" + JSON.stringify(data))
            alert(data.aps.alert.body)
          });

на ios это все прекрасно работает. однако на андроиде console.log печатает

{"wasTapped":false}

Я согласен с ожидаемым выше свойством, но где данные? Документация по Firebase сбивает с толку, и я в некотором роде заблудился, какую именно полезную нагрузку мне нужно использовать, которая работает как с ios, так и с android.

1 Ответ

0 голосов
/ 26 ноября 2018

Ваш pushPayload также должен иметь массив data для передачи данных.Я считаю, что вам также нужны речевые метки вокруг ваших клавиш:

"notification":{  
   "title":"Doodles Notification",
   "body":"push testing",
   "sound":"default",
   "badge":"1"
},
"data":{  
   "Key1":"Test",
   "Key2":"More data"
}

Документация

...