Я создаю приложение Cordova, которое запускает локальные push-уведомления для Android с cordova-plugin-local-notifications , которое, как представляется, работает в большинстве случаев, но я столкнулся с этой ошибкой, когда некоторые из моих уведомлений будет срабатывать, но сразу же очищается от панели уведомлений. Другие уведомления будут срабатывать очень хорошо. Странно то, что единственное реальное различие между рабочими и неработающими уведомлениями состоит в том, что у рабочих уведомлений есть опция data
, которая включает в себя ключ reminderId
, а в сломанных уведомлениях вместо этого есть ключ alarmId
.
Это сломано:
scheduleNotification({
id: notification.id,
trigger: { at: new Date(notification.timestamp) },
title: 'Precorrection Alarm',
text: maybeBlank(alarm.name, 'Unnamed Alarm'),
data: {
type: 'alarm',
alarmId: alarm.id
}
})
Но это прекрасно работает:
scheduleNotification({
id: notification.id,
trigger: { at: new Date(notification.timestamp) },
title: 'Praise Reminder',
text: maybeBlank(reminder.name, 'Unnamed Reminder'),
data: {
type: 'reminder',
reminderId: reminder.id
}
})
Я уверен, что проблема вызвана параметром data
, потому что, если я удаляю его из сломанного уведомления, он работает нормально.
Не понимаю ли я что-то о том, как Android обрабатывает это поле data
? Я подумал, что он должен был использоваться для отправки специфичных для приложения данных с PN, но, похоже, он вообще этого не делает (данные даже недоступны в параметрах запуска при открытии из PN).
Я бы опубликовал это как проблему в репозитории плагинов, но там находится город-призрак.