Служба Angular Location: как определить, доступна ли навигация «назад» и «вперед» - PullRequest
0 голосов
/ 05 марта 2019

В моем PWA я использую навигационные кнопки «назад» и «вперед», когда приложение находится в автономном режиме.Чтобы добиться этого, я добавляю Службу определения местоположения в свой компонент, а затем:

public onForward() {
 this.location.forward();
}

public onBack() {
  this.location.back();
}

Я пытаюсь сейчас отключить кнопку пересылки, когда недоступна прямая навигацияи аналогичным образом отключите кнопку «Назад», когда нет обратной навигации (например, приложение только что запущено).Есть идеи как этого добиться?Похоже, что Location API не удовлетворяет этому требованию.

1 Ответ

0 голосов
/ 05 марта 2019

Да, кажется, это действительно ясно из документации по API.

Вы можете просто сделать это самостоятельно со счетчиком:

private history_depth = 0;

public onForward() {
  this.history_depth -= 1;
  this.location.forward();
}

public onBack() {
  this.history_depth += 1;
  this.location.back();
}

public isBackEnabled() {
  return this.history_depth > 0;
}

Редактировать :

Однако, это не будет идеально: возврат в браузер вручную не будет работать.Это объясняется в этом посте SO (tldr; невозможно, потому что это может быть проблемой безопасности), где рекомендуется оставлять кнопку «Назад» включенной - и это не работает, если нет истории возврата.

Также, возможно, есть что-то, с чем можно поработать с историческим API .Это не будет идеально, но, может быть, есть несколько случаев, чтобы успешно сработать.Вы можете увидеть примеры в различных ответах упомянутого поста SO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...