Значок Ionic 3 не отображается на iOS или Android
У меня есть мобильное приложение, основанное на Ionic 3, использующее плагины Firebase и FCM для отправки уведомлений.
У меня 2 проблемы:
- Значок никогда не появляется (проверено на iOs и Android) (но уведомления работают нормально)
- Когда я нажимаю на уведомление, меня перенаправляют на домашнюю страницу моего приложения. Но я бы хотел, чтобы меня перенаправили на конкретную страницу моего заявления. По-видимому, это должно быть указано путем изменения параметра "активность" в параметре "click_action", однако мое приложение не выполняет никаких действий.
Спасибо за вашу помощь.
Вот мой код:
sendNotif(){
this.postRequest()
var headers = new Headers();
headers.append("Accept", 'application/json');
headers.append('Content-Type', 'application/json');
headers.append('Authorization', 'key=xxxxx:xxxx')
let options = new RequestOptions({ headers: headers });
let postParams = {
"notification": {
"title": "Mon-appli",
"body": "Nouvelle réservation",
"sound": "default",
"click_action": "FCM_PLUGIN_ACTIVITY",
"icon": "fcm_push_icon"
},
"data": {
"param1": "value1",
"param2": "value2"
},
"to": "/topics/all",
"priority": "high",
"restricted_package_name": ""
}
this.http.post("https://fcm.googleapis.com/fcm/send", postParams, options)
.subscribe(data => {
this.nb_notif = this.nb_notif +1;
}, error => {});
}
2 ответа
А для вопроса № 1: Вам нужно добавить значок:1 в своем уведомлении:{..} описание.
"notification": {
"title": "Mon-appli",
"body": "Nouvelle réservation",
"sound": "default",
"click_action": "FCM_PLUGIN_ACTIVITY",
"icon": "fcm_push_icon",
"badge":1
}
Я оказался здесь, потому что у меня та же проблема со значком, что и у вас. Но я думаю, что могу ответить на вашу проблему № 2:
Перенаправление не имеет ничего общего с настройкой уведомлений. Вам нужно отписаться от наблюдателя аутентификации. Так что отмените подписку в app.component.ts от слушателя следующим образом:
const authUnsubscribe = afAuth.authState.subscribe( user => {
if (user) {
authUnsubscribe.unsubscribe();
this.rootPage = 'HomePage';
}
else{
this.rootPage = 'LoginPage';
}
});