Можно ли принудительно принудительно обновить приложение (аналог браузера Ctrl + F5) из кода приложения под углом? - PullRequest
3 голосов
/ 30 апреля 2019

Иногда мое угловое приложение обновляется. Приложение уже запущено, и часто встречается сценарий использования, когда пользователь вообще не закрывает вкладку браузера с приложением, поэтому устаревшая версия без проверок может использоваться вечно.

Я реализовал механизм проверки версии приложения на внутренней стороне, поэтому все вызовы из устаревшей версии отклоняются.

Следующим шагом является показ пользователю некоторого диалогового окна «Требуется обновление» в случае такого отклонения серверной части и в случае подтверждения, было бы хорошо не заставлять пользователя нажимать «Ctrl + F5» вручную, а делать это автоматически. из приложения.

Возможно ли это?

1 Ответ

1 голос
/ 30 апреля 2019

Нам нужно использовать перехватчик для обнаружения ошибки, и если ошибка обнаружена, мы перезагружаем страницу, используя window.location.reload (true); он удалит кеш и перезагрузит страницу.

@Injectable()
export class myInterceptor implements HttpInterceptor {

  constructor() { }

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).pipe(
      catchError(error => this.handleError(error))
    );
  }

  private handleError(error: HttpErrorResponse): Observable<any> {
     if (error.status === 404) {
      // Do your thing here      
     window.location.reload(true);
   }         
  }

Надеюсь, это вам поможет.

...