У меня есть приложение с уведомлением о реагировании на исходное состояние, сообщение успешно получено, уведомление успешно создано и отображено на Android Nougat или более ранней версии, на Android Oreo или более поздней версии. У меня есть добавление channelId.родной run-android, но при использовании bundle (cd android && ./gradlew installRelease) мое уведомление не отображается только на переднем плане на Android Oreo или более поздней версии, на фоне работает.Не знал, что проблема в приемнике сообщений или при создании уведомления.Вот мой код ...
Я вызываю функцию ниже после получения разрешений для прослушивания сообщения, когда приложение находится на переднем плане
export const listening_message = () => {
return firebase.notifications().onNotification((notification) => {
display_notification({
notification_param: {
sound: 'default',
show_in_foreground: true,
},
title: notification.title,
subtitle: notification.subtitle,
body: notification.body,
data: notification.data,
});
});
}
, тогда это код для отображения уведомления
async function display_notification(parameter) {
let realmUser = await Realm.open(RealmData.User);
if(realmUser.objects(RealmDataName.User).length > 0) {
let realmNotification = await Realm.open(RealmData.NotificationID);
if(realmNotification.objects(RealmDataName.NotificationID).length == 0) {
realmNotification.write(() => {
realmNotification.create(RealmDataName.NotificationID, {
id: 0,
})
});
}
if(realmNotification.objects(RealmDataName.NotificationID).length == 0) {
realmNotification.write(() => realmNotification.create(RealmDataName.NotificationID, {id: 0}));
}
const channel = new firebase.notifications.Android.Channel(
'channelId',
'Channel Name',
firebase.notifications.Android.Importance.High
).setDescription('Description of the channel');
firebase.notifications().android.createChannel(channel);
let new_notification = new firebase.notifications.Notification(parameter.notification_param)
.setNotificationId(realmNotification.objects(RealmDataName.NotificationID)[0].id.toString())
.setTitle(parameter.title)
.setSubtitle(parameter.subtitle)
.setBody(parameter.body)
.setData({
id: realmNotification.objects(RealmDataName.NotificationID)[0].id.toString(),
...parameter.data,
});
if(Platform.OS == "android") {
new_notification.android.setVibrate(1000)
.android.setSmallIcon('ic_launcher')
.android.setColor('#000000');
if(Platform.Version <= 25) {
new_notification.android.setPriority(firebase.notifications.Android.Priority.High);
} else {
new_notification.android.setChannelId("channelId");
}
} else if(Platform.OS == "ios") {
new_notification.ios.setBadge(1);
}
firebase.notifications().displayNotification(new_notification);
realmNotification.write(() => realmNotification.objects(RealmDataName.NotificationID)[0].id++);
}
}