Как сделать так, чтобы уведомление FCM отображалось как баннер, когда приложение находится в BG или закрывается на клиенAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать так, чтобы уведомление FCM отображалось как баннер, когда приложение находится в BG или закрывается на клиен

Сообщение Anonymous »

Это не вопрос отладки.
Я начну с общего вопроса:
Какой именно параметр конфигурации/ s необходимы для того, чтобы сообщения FCM отображали баннер, когда приложение Android либо находится в фоновом режиме, либо закрывается?
В своем исследовании я пришел к выводу, что ответ либо лежит в:
  • A) определении JSON сообщения FCM (см. ниже),
  • B) коде Flutter
    (т.е. FCM.instance.makeAndroidShowBannerInBackground(true) или
  • C) пользовательская собственная конфигурация Android, например создание пользовательских каналов сообщений
    .
В приложении Flutter+Firebase, использующем Firebase Cloud Messaging (FCM), у меня есть облачная функция, которая определяет сообщение следующим образом («обычная» функция Javascript, v1):

Код: Выделить всё

const multicastMessage = {
tokens: tokens, // Array of tokens
notification: {
title: `Alert from ${userName}`,
body: notificationBody,
},
android: {
priority: "high", // High priority for Android notifications
ttl: 60, // TTL of 60 seconds (~1 minute)
notification: {
sound: "custom_notification_sound_alert",
},
},
apns: {
headers: {
"apns-priority": "10", // High priority for APNs
// Expires in 60 seconds
"apns-expiration": `${Math.floor(Date.now() / 1000) + 60}`,
},
payload: {
aps: {
"alert": {
title: `Alert from ${userName}`,
body: notificationBody,
},
"sound": "CustomNotificationSoundAlert.wav",
},
},
},
};
Как уже говорилось, это не вопрос отладки, и «дополнительный код» не требуется, если вы понимаете, что сообщение доставляется как на Android, так и на Клиенты IOS работают во всех отношениях, за исключением одного: на Android, когда приложение работает в фоновом режиме или закрывается, уведомление доставляется на панель задач в виде крошечного значка. Это не так. отображаться как баннер поверх всего остального.
Что я пробовал:
Общий поиск в Google выдает эту проблему с GitHub... но это так. старый, я не уверен, что он все еще применим.
Документация Firebase FCM... хотя существует много связанных тем, документы, похоже, не подтверждают это прямо/точно (Android показывает баннер или нет, когда он находится в фоновом режиме/убит и почему) как потенциальная проблема. Хотя я прочитал много этого, я не прочитал все документы, отчасти потому, что я не уверен, в каком разделе будет лежать ответ - Android, Flutter, "Сервер"... а FCM сложен, и понятия уже достаточно легко смешиваются в моей голове.
Я не хочу верить, что ответ кроется в (C) — пользовательской конфигурации кода Android (например, определении пользовательские каналы сообщений), потому что я думал, что FCM должен быть оболочкой... но эта часть исходного кода Firebase Android SDK/FCM (Java) действительно выглядит так:

Код: Выделить всё

notificationManager.createNotificationChannel(
new NotificationChannel(
// channel id
FCM_FALLBACK_NOTIFICATION_CHANNEL,
// user visible name of the channel
defaultChannelName,
// shows everywhere, makes noise, but does not visually intrude.
NotificationManager.IMPORTANCE_DEFAULT));
В частности, «.IMPORTANCE_DEFAULT» и комментарий «показываются повсюду, создают шум, но визуально не мешают». интересны и могут дать подсказку.
Но если это правда, что есть только один канал «по умолчанию», у которого недостаточно высокий приоритет для показа баннера, и мне нужно создать пользовательский канал в собственном коде Android... тогда почему вообще в JSON есть ключ приоритета Android? И почему не может быть дополнительного канала «по умолчанию» (с высоким приоритетом), созданного SDK, который соответствует приоритету, установленному в JSON? :S
Может быть, это просто какая-то глупость, например, высокий уровень в «приоритете: «высокий»» должен быть ЗАГЛАВНЫМ?

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»