Доброго времени суток, ребята, это моя первая публикация на сайте, прошу прощения, если я не соблюдаю все правила публикации, потому что не знаю их подробно.
Шаг, чтобы прокомментировать мою проблему. У меня есть приложение, созданное с использованием ionic 3 и angular, которое работает с уведомлениями между пользователями, чтобы вызвать действие, исследовать форумы firebase и несколько других мест и пробовать несколько кодов, но я не мог это исправить. Приложение отправляет данные и уведомление на конкретный токен, устройство, зарегистрированное токеном, получает данные, но не уведомление. Ни когда он открыт, ни когда приложение открыто, ни когда оно находится в фоновом режиме, ни когда оно закрыто. Это код, который вы используете:
1) Чтобы получить токен
this.fcm.getToken (). then (token => {
alert ('token' + JSON.stringify (token))
// Here I save the token I receive from the device
})
Это работает .. Я могу получить токен устройства.
2) Чтобы получить уведомление:
this.fcm.onNotification (). subscribe (data => {
if (data.wasTapped) {
alert ("Received in background")
} else {
alert ("Received in foreground")
};
})
Это также работает, когда я отправляю уведомление с консоли firebase, я получаю его отлично .. проблема в том, что я отправляю его с сервера
3) Код для уведомления:
SendNotific ()
{
let keytoken = 'fqN5yelN7gk: APA91bGT0 ......'
let keyserver = 'AAAA4oCrTNk: APA91bHLBWcyQimF ....'
let headers = {'Authorization': 'key =' + keyserver,
'Content-Type': 'application / json'};
let url = 'https://fcm.googleapis.com/fcm/send';
let body = {
"notification":{
"title": "notification title",
"body": "notification body"
},
"data":{
"key1": "value1",
"key2": "value2"
},
"to": keytoken,
"priority": "high",
"content_available": true
}
this.http.post (url, body, headers) .then (data =>
{
alert (JSON.stringify (data))
}). then (error => {
alert ('error' + JSON.stringify (error))
})
}
Если приложение находится на переднем плане устройства, предупреждение становится видимым, то есть я получаю данные, которые отправил в разделе «Данные». (В этом случае это будут «key1» и «key2»), но я не получаю никаких уведомлений. Если приложение работает в фоновом режиме или закрыто, уведомления не отображаются, а когда я снова открываю приложение, отображаются предупреждающие сообщения с полученными «данными».
Как я уже говорил, если вы отправили уведомление из консоли Firebase, оно работает нормально ..
Ясно, что мне не хватает некоторых данных, которые я не могу найти .. Я видел несколько публикаций, в которых говорится об одном и том же, но я не могу дать решения ..
Могу ли я пропустить определенные данные в уведомлении, чтобы их можно было увидеть?
Нужно ли пользователю принимать какое-либо разрешение для получения уведомления?
Большое спасибо и извините, если я не смог четко объяснить
С уважением,
Джулиан.