You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular PWA如何实现启动屏仅首次加载显示 避免每次刷新都展示

Angular PWA启动屏仅首次启动展示解决方案

你需要通过本地持久化存储标记启动屏是否已经展示过,避免每次页面刷新重复加载,修改方案如下:

  • 第一步:修改启动屏组件逻辑代码

注:原代码中this.windowWidth = +'-' * window.innerWidth + 'px';存在语法错误,数字和字符串相乘会得到NaN,同步做了修正

windowWidth : string | any | number;
showSplash: boolean = true;

constructor() { }

ngOnInit(): void {
  // 读取本地存储标记,判断是否已经展示过启动屏
  const hasShownSplash = localStorage.getItem('splashHasShown');
  if (hasShownSplash === 'true') {
    this.showSplash = false;
    return;
  }

  // 仅首次启动走原动画逻辑
  setTimeout(()=> {
    this.windowWidth = '-' + window.innerWidth + 'px';
    setTimeout(()=> {
      this.showSplash = false;
      // 动画结束后写入展示标记,后续所有加载场景都不会再显示启动屏
      localStorage.setItem('splashHasShown', 'true');
    },500);
  },2000);
}
  • 第二步:可选优化(仅当需要应用大版本更新时重新展示启动屏时使用)
    可以给存储标记绑定应用版本号,发版时更新版本号即可触发重新展示:
// 发版时更新版本号即可
const CURRENT_APP_VERSION = '1.0.0';
const hasShownSplash = localStorage.getItem(`splashHasShown_v${CURRENT_APP_VERSION}`);
// 写入存储时也使用对应版本的key
localStorage.setItem(`splashHasShown_v${CURRENT_APP_VERSION}`, 'true');

localStorage存储的标记会永久保留,除非用户手动清除浏览器缓存或者应用数据,完全符合仅首次启动展示一次的需求。

内容的提问来源于stack exchange,提问作者NoobCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 17:03:01