Я использую следующую полезную нагрузку для отправки push-уведомлений на устройство Android с помощью почтальона.
{
"to" : "device_key",
"collapse_key" : "type_a",
"notification" : {
"body" : "Body of Your Notification",
"title": "Title of Your Notification",
"sound": "default"
},
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}
Уведомления принимаются на мое устройство и OnMessageReceived()
запускаются, только когда приложение находится на переднем плане.Когда приложение находится в фоновом режиме OnMessageReceived
не запускается и не запускается при нажатии на уведомление.
Я установил FirebasePushNotificationPlugin
и добавил события уведомления в конструкторе приложений, как показано ниже.
CrossFirebasePushNotification.Current.OnNotificationReceived += (s, p) =>
{
System.Diagnostics.Debug.WriteLine("Received");
};
CrossFirebasePushNotification.Current.OnNotificationOpened += (s, p) =>
{
System.Diagnostics.Debug.WriteLine("Opened");
foreach (var data in p.Data)
{
System.Diagnostics.Debug.WriteLine($"{data.Key} : {data.Value}");
}
if (!string.IsNullOrEmpty(p.Identifier))
{
System.Diagnostics.Debug.WriteLine($"ActionId: {p.Identifier}");
}
};
Но при получении или нажатии на уведомление эти коды не срабатывают.
В одном потоке я обнаружил, что вышеуказанные события инициируются, когда вы отправляете только сообщение с данными, не должны отправляться уведомления, если вы хотите использовать этот обработчик событий.
Но если я отправляю сообщения с данными, на мое устройство не поступают только уведомления.Ниже приведены полезные данные уведомлений для сообщений данных.
{
"to" : "device_key",
"collapse_key" : "type_a",
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}
Мне нужно открыть страницу содержимого в PCL при нажатии на уведомление.Но OnNotificationReceived
или OnNotificationOpened
не срабатывают.Так чего же мне не хватает в этой реализации?