Хотя это повторяющийся вопрос, все же я не получил точного ответа на это.
Я пытаюсь сделать это на устройстве Pixel 2.
- Когда приложение находится на переднем плане / в фоне - Получение уведомления
- когда приложение выполняется из фонового стека, появляется сообщение «Мое приложение остановлено»
- Следующим, если я попытаюсь получить уведомление, будет уведомление. Также не получено остановленное диалоговое окно.
Если какая-либо ссылка от Google, пожалуйста, дайте мне знать.
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class MyFirebaseMessagingService : FirebaseMessagingService
{
public override void OnMessageReceived(RemoteMessage message)
{
CrossCurrentActivity.Current.Activity.RunOnUiThread(() => Android.Widget.Toast.MakeText(CrossCurrentActivity.Current.Activity, "Notification received", Android.Widget.ToastLength.Long).Show());
}
public override void HandleIntent(Intent intent)
{
try
{
if (intent.Extras != null)
{
var builder = new RemoteMessage.Builder(typeof(MyFirebaseMessagingService).Name);
foreach (string key in intent.Extras.KeySet())
{
builder.AddData(key, intent.Extras.Get(key).ToString());
}
this.OnMessageReceived(builder.Build());
}
else
{
base.HandleIntent(intent);
}
}
catch (Exception)
{
base.HandleIntent(intent);
}
}
}
Мои полезные нагрузки
Тип 1
{
"message":{
"token":"<MyDevice token>",
"notification":{
"body" : "Someone has escaped the jail",
"title" : "Jail escape alert"
}
}
}
Тип 2
{
"message":{
"token":"<My Device token>",
"notification":{
"body" : "Someone has escaped the jail",
"title" : "Jail escape alert"
},
"data" : {
"Eventid" : "911",
"Longmessage" : "A super-secret message",
"id" : "007"
},
"android":{
"priority":"high"
}
}
}
Для обоих я не получаю уведомления.
Даже документация Firebase также предлагает то же самое.
https://firebase.google.com/docs/cloud-messaging/concept-options