当前位置: 首页 > 知识库问答 >
问题:

IONIC 5如何在没有白屏的情况下重新加载页面

法弘亮
2023-03-14

当我在IONIC 5应用程序上实现它时,我的问题是每次我重新加载页面时,它都会显示我设置的微调器和图像,但在微调器完全重新加载后,应用程序会显示1到2秒的白屏,然后只显示我想要的页面。

所以,我的问题是如何在没有白屏显示的情况下重新加载页面?

我已经在我的应用程序中设置了以下代码。组成部分html,所以每次我的应用程序重新加载页面时,它都会显示微调器和图像

<ion-app>
  <ion-router-outlet></ion-router-outlet>
  <div class="loading-overlay" *ngIf="loading" style="margin: auto;">
    <img src="assets/icon/favicon.png"style="height:150px;width:150px;"/> <br/>
    <!-- Bubbles Spinner -->
    <ion-spinner name="bubbles"></ion-spinner>&nbsp;
    <span>Please Wait..</span>
  </div>
</ion-app>

我的应用程序中的功能。组成部分ts


  constructor(private router: Router,
              private so: ScreenOrientation,
              private alertCtrl: AlertController,
              private platform: Platform,
              private _location: Location,
              ) {
   this.router.events.subscribe((e : RouterEvent) => {
      this.navigationInterceptor(e);
    })


    this.router.events.subscribe((event) => {
        if (event instanceof NavigationEnd) {
          this.history.push(event.urlAfterRedirects)
        }
    })


   //Updated Code

  this.platform.ready().then(() => {
      setTimeout(function(){
        this.splashScreen.hide();
      }, 50);
    });
  }
  // Shows and hides the loading spinner during RouterEvent changes
  navigationInterceptor(event: RouterEvent): void {
    if (event instanceof NavigationStart) {
      this.loading = true
    }
    if (event instanceof NavigationEnd) {
      this.loading = false
    }

    // Set loading state to false in both of the below events to hide the spinner in case a request fails
    if (event instanceof NavigationCancel) {
      this.loading = false
    }
    if (event instanceof NavigationError) {
      this.loading = false
    }
  }

下面是我如何重新加载页面的代码之一:

this.router.navigate(['/order'])
                .then(() => {
                  window.location.reload();
                });

共有1个答案

宰父远
2023-03-14

如果此代码在你的应用程序中。组成部分ts,然后添加此

initializeApp() {
this.platform.ready().then(() => {

  this.splashScreen.hide();

})

在你的config.xml

 <preference name="SplashScreenDelay" value="3000" />

请注意,值可能会根据您的应用程序而更改

或者如果代码在页面中,您可以将代码添加到构造函数中,

或者您可以将setTimeout函数的值更改为更大的数字(如500、1000…等)

 类似资料:
  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。

  • 问题内容: 有没有办法可以在不重新加载页面的情况下修改当前页面的URL? 如果可能,我想访问#哈希 之前 的部分。 我只需要更改域 后 的部分,所以就好像我没有违反跨域策略一样。 问题答案: 现在,可以在Chrome,Safari,Firefox 4+和Internet Explorer 10pp4 +中完成此操作! 例: 然后,您可以用来检测后退/前进按钮的导航:

  • 问题内容: 转到任何GitHub 页面,然后单击任何目录/文件,并观察URL的更改方式,但仅更新页面的一部分。没有整个页面重新加载。 我如何使用jQuery做类似的事情? 这对大多数浏览器都有效吗(我使用的是Chrome)? 问题答案: 他们使用历史记录API,或者专门使用。 您可以使用它,不需要jQuery,但是有一些插件,例如history.js。 这适用于大多数浏览器,即Chrome,Saf

  • 问题内容: 有没有办法可以在不重新加载页面的情况下修改当前页面的URL? 如果可能,我想访问#哈希 之前 的部分。 我只需要更改域 后 的部分,所以就好像我没有违反跨域策略一样。 问题答案: 现在,可以在Chrome,Safari,Firefox 4+和Internet Explorer 10pp4 +中完成此操作! 有关更多信息,请参见此问题的答案: 使用新URL更新地址栏而不散列或重新加载页面

  • 我在文本7中使用pdfHTMl创建了文档。我想为没有第一页的每一页添加页眉。我使用了PdfDocument事件。END_PAGE事件。但它适用于有第一页的每一页。如何从第一页中删除页眉?谢谢。

  • 问题内容: 我有http://mysite.com/index.php。 还有一个子菜单 主页=> http://mysite.com/index.php 关于我们=> http://mysite.com/about.us.php 产品=> http://mysite.com/products.php 但我希望http://mysite.com/index.php处理每个请求,并仅使用Ajax请求