是否可以从角度的应用程序代码强制进行硬应用程序更新(Ctrl + F5浏览器模拟)?

问题描述 投票:3回答:1

有时我的角度应用程序会更新。该应用程序已经上线,并且一些常见的使用场景是当用户根本没有关闭浏览器选项卡时,因此可以永久使用没有检查的过期版本。

我已经实现了一种机制来检查后端的应用程序版本,因此来自过时版本的所有调用都将被拒绝。

下一步是向用户显示一些“需要更新”对话框以防止此类后端拒绝,如果确认,最好不要强制用户手动按“Ctrl + F5”,而是自动从应用程序执行此操作。

可能吗?

angular browser browser-cache
1个回答
1
投票

我们需要使用拦截器来检测错误,如果检测到错误,那么我们使用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);
   }         
  }

我希望它会帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.