быстрый вопрос здесь.
Я разработал приложение ionic / cordova, которое использует Firebase для получения уведомлений. Это сообщение, которое я отправляю в другом приложении:
JsonObject jNotification = new JsonObject();
jNotification.addProperty("title", title);
jNotification.addProperty("body", body);
JsonObject jMessage = new JsonObject();
jMessage.add("notification", jNotification);
jMessage.addProperty("topic", topic);
JsonObject jData = new JsonObject();
jData.addProperty("title", title);
jData.addProperty("body", body);
jData.addProperty("sound", "default");
jData.addProperty("click_action", "FCM_PLUGIN_ACTIVITY");
jData.addProperty("icon", "fcm_push_icon");
jData.addProperty("priority", "high");
jMessage.add("data", jData);
JsonObject jFcm = new JsonObject();
jFcm.add("message", jMessage);
Это отправляется на URL
https://fcm.googleapis.com/v1/projects/PROJECT/messages:send
После этого я получаюМой токен доступа через service-account.json не вызывает проблем.
Мобильное приложение получает push-уведомление с помощью:
if (this.platform.is('cordova')) {
this.fcm.subscribeToTopic('TOPIC');
this.fcm.getToken().then(token => {
// save this server-side and use it to push notifications to this device
console.log(`Obtained token: ${token}`);
});
this.fcm.onTokenRefresh().subscribe(token => {
// save this server-side and use it to push notifications to this device
console.log(`Obtained refreshed token: ${token}`);
});
this.fcm.onNotification().subscribe(data => {
if (data.wasTapped) {
console.log(Notification received`);
} else {
this.dialogs.alert(data.body, data.title)
.then(() => console.log('Dialog dismissed'))
.catch(e => console.log('Error displaying dialog', e));
}
})
}
В приложении push-уведомление приходит без проблем черездругое приложение или даже с помощью консоли Firebase. Однако, когда за пределами приложения, push-уведомление не появляется в системном трее.