Невозможно получить значения уведомлений в приложении .NET MAUI для Android при нажатии группы уведомлений, когда приложAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить значения уведомлений в приложении .NET MAUI для Android при нажатии группы уведомлений, когда прилож

Сообщение Anonymous »

Я создаю приложение для Android с использованием .NET MAUI. Приложение получает push-уведомления от Google Firebase. У меня возникают проблемы с получением данных нескольких уведомлений, когда мое приложение работает в фоновом режиме.
Когда в панели появляется несколько уведомлений, когда приложение находится в фоновом или закрытом (уничтоженном) состоянии, они как бы группируются. как будто есть одно уведомление (изображение ниже). Если я коснусь «сгруппированного» уведомления, не развернув его, Intent?.HasExtra("body") вернет false в MainActivity - OnNewIntent() (см. код ниже). Я попробовал Intent.HasExtra("body") (заглавная I), но он также возвращает false. OnNewIntent() выполняется только один раз.
Изображение

Поскольку HasExtra() возвращает false, я вообще не могу получить какие-либо значения этих уведомлений. Я не знаю, как получить доступ к их значениям. Как мне их получить??
Если в ящике есть одно уведомление и оно нажимается, когда приложение работает в фоновом режиме, я могу получить значения уведомления. Intent?.HasExtra("body") возвращает true.

Кроме того, я могу получить значения уведомления, если разверну группу (изображение ниже) и коснусь одного уведомление одновременно.
Изображение
Вот мой код:

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

[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity, Android.Gms.Tasks.IOnSuccessListener
{
public void OnSuccess(Java.Lang.Object result)
{
DeviceInstallationService.Token = result.ToString();
}

// this method is called when a notification in drawer is tapped while the app is in background
protected override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);
ProcessNotificationsAction(intent);
}

protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

if (DeviceInstallationService.NotificationsSupported)
FirebaseMessaging.Instance.GetToken().AddOnSuccessListener(this);

ProcessNotificationsAction(Intent);
}

private void ProcessNotificationsAction(Intent intent)
{
try
{
Task.Run(() =>
{
if (intent?.HasExtra("body") == true)
{
var body = intent.GetStringExtra("body");

if (!string.IsNullOrEmpty(body))
{
var id = Guid.Parse(intent.GetStringExtra("id"));
var application = intent.GetStringExtra("application");
var datePublished = DateTime.SpecifyKind(DateTime.Parse(intent.GetStringExtra("datePublished")), DateTimeKind.Utc);
NotificationMessageService.TriggerMessage(id, application, body, intent.HasExtra("url") ? intent.GetStringExtra("url") : null, datePublished);
}
}
});
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
}
Вот что я отправляю из Firebase:

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

{
"message": {
"notification": {
"title": "Notification title",
"body": "This is a test message..."
},
"android": {
"notification": {
"channel_id": "com.company.app.default"
}
},
"data": {
"id": "A GUID",
"application": "App type A",
"body": "This is a test message...",
"url": "http://www...",
"datePublished": "2024-11-08T00:00:00.0000000Z"
}
}
}
Мне кажется, что я упускаю что-то основное, но просто не вижу этого.

Обратите внимание: у меня нет проблем, когда приложение включено. передний план. Проблема возникает в эмуляторе Android и на моем физическом устройстве (Pixel 7).
Среда, пакеты Nuget и версии:
  • .NET MAUI — 8.0.82
  • Microsoft.Maui.Controls — 8.0.82
  • Microsoft.Maui.Controls.Compatibility — 8.0 .82
  • Xamarin.Firebase.Messaging 124.0.0.1


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

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

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

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

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

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

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