Почему pushNotificationActionPerformed не работает одинаково для моих случаев? - PullRequest
0 голосов
/ 03 марта 2020

Я следовал документации о том, как реализовать 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('"', ''));
  }
);
...