Я следовал документации о том, как реализовать Pu sh уведомления конденсатора. Все из документов работает.
По умолчанию он имеет что-то вроде этого кода:
PushNotifications.addListener('pushNotificationActionPerformed',
(notification: PushNotificationActionPerformed) => {
alert('Push action performed: ' + JSON.stringify(notification['actionId']));
}
);
Это работает нормально. Когда я отправляю сообщение, когда приложение закрыто, я нажимаю на уведомление pu sh, оно открывает приложение и показывает предупреждение «Pu sh действие выполнено: нажмите».
Итак, моя логика c должен был добавить настраиваемое поле к сообщению pu sh, равное gotoPage
, чтобы я мог использовать это для перехода на страницу, которую он должен открыть.
Код для навигации будет:
this.router.navigate(['pages/example']);
Который сам по себе работал нормально. Делая его динамическим c, используя сообщение pu sh, это было бы:
PushNotifications.addListener('pushNotificationActionPerformed',
(notification: PushNotificationActionPerformed) => {
this.router.navigate([JSON.stringify(notification['data']['gotoPage']).replace('"', '')]);
}
);
Мне пришлось добавить .replace
, потому что он добавляет "к строке, что, как я думал, вызвало проблемы.
Но так как это не сработало, оказалось, что я просто попробую проверить, получил ли я правильную вещь из полезной нагрузки. Поэтому, поместив его в alert()
, вы увидите, что навигация должна работать.
В итоге я попытался сделать то же самое, что и в примере, чтобы увидеть, сработает ли это, но это не так.
Итак, наконец, мой вопрос: почему приведенный ниже код не работает так же, как код по умолчанию (первый блок кода)?
PushNotifications.addListener('pushNotificationActionPerformed',
(notification: PushNotificationActionPerformed) => {
alert('I got this: ' + JSON.stringify(notification['data']['gotoPage']).replace('"', ''));
}
);