С моим эмулятором Android я сталкиваюсь с очень странным поведением.
Я разрабатываю кросс-платформенное приложение с Xamarin. У меня проблема с пу sh уведомлениями. Я использую этот простой учебник:
https://github.com/CrossGeeks/FirebasePushNotificationPlugin
С моего сервера я получаю sh сообщение вроде этого:
FCMClient client = new FCMClient(“MyKey”); //as derived from https://console.firebase.google.com/project/
var message = new Message()
{
To = “MY_DEVICE_TOKEN”, //topic example /topics/all
Notification = new AndroidNotification()
{
Body = "Hi",
Title = "Hello",
}
};
IFCMResponse result = await client.SendMessageAsync(message);
return Ok(result);
Код в моем приложении:
CrossFirebasePushNotification.Current.OnNotificationReceived += (s, p) =>
{
try
{
//p.Data.
Debug.WriteLine($"OnNotificationReceived:" + p);
foreach (var item in p.Data.Keys)
{
Debug.WriteLine(p.Data[item]);
}
if (p.Data.ContainsKey("body"))
{
Device.BeginInvokeOnMainThread(() =>
{
});
}
}
catch
{
}
};
CrossFirebasePushNotification.Current.OnNotificationOpened += (s, p) =>
{
//System.Diagnostics.Debug.WriteLine(p.Identifier);
try
{
foreach (var data in p.Data)
{
Debug.WriteLine($"{data.Key} : {data.Value}");
}
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
};
А теперь проблема с strage.
Как вы можете видеть на картинке, я получаю уведомление, и при выводе приложения я получаю "Привет, привет" как результат Debug.WriteLine($"{data.Key} : {data.Value}");
, если приложение находится в фоновом режиме / убито, я получаю уведомление, но при выводе приложения я получаю это:
Очень странно, особенно потому, что в некоторые дни go все работал отлично. Теперь я что-то изменил и не могу решить проблему.
Я должен сказать, что сервисы Google Play установлены на эмуляторе. Мне нужно получить информацию от p.Data
, и я не могу прямо сейчас.
Есть идеи?
Мирко