在 Ionic Framework 中重新加载页面时如何防止白屏

How to prevent white screen when reloading page in Ionic Framework

我正在使用 AngularJS 和 Ionic Framework 构建应用程序。我的应用程序需要有一个注销按钮。当用户按下注销按钮时,我想重新加载页面,以便重新启动应用程序并清除所有缓存数据。基于 this Whosebug Question 我应该可以做到 $window.location.reload(true)。如果我只是 运行 通过 ionic serve 在浏览器中安装应用程序,那效果很好。但是,当我 运行 在实际设备上使用它时,屏幕会变成空白,再也不会出现。如何 reload/refresh 移动设备上的页面不会出现黑屏?

编辑:这是我的实际代码:

angular.module('login').controller('logoutController', ['$state', '$window', function ($state, $window) {
    $state.go('login');
    $window.location.reload(true);
}]);

我正在尝试在转换到 login 状态后重新加载该位置。

我刚刚在我的应用程序的注销功能中测试了 $window.location.reload(true),它工作正常(也在实际应用程序中)。

为了解决您的问题,请确保

  1. 您在视图的控制器中添加了 $window 作为依赖项

  2. 您通过调用将您的用户发送到应用程序入口视图 $state.go("your-entry-view") 在您的注销功能中或

  3. 通过在 $stateProvider 配置中定义回退状态: $urlRouterProvider.otherwise('/your-entry-views-url')

如果这没有帮助,请向我们提供更多详细信息,例如您调用注销功能的控制器和您的状态配置。您的控制台输出也可能有所帮助。

上面的代码工作正常。事实证明,我的问题在于我如何过渡到 logout 状态。如果我在 ion-item 上使用 href,则会导致黑屏问题:

<ion-item nav-clear menu-close class="item-icon-left" href="#/logout">
    Logout
</ion-item>

但是,如果我在 ion-item 上使用 ui-sref,则不会出现黑屏:

<ion-item nav-clear menu-close class="item-icon-left" ui-sref="logout">
    Logout
</ion-item>

不要问我这是怎么发生的或为什么会发生。这就是我所观察到的。