我正在尝试启动一个基本的ionic2应用程序,并想知道我的初始应用程序加载的时间是否是一个问题.我想做的是如果用户未经过身份验证,则将起始页面设置为登录页面.
我最初将根页面设置为主页,然后当异步调用从localstorage返回时,如果用户未经身份验证,我会将根页面重置为登录页面.但是,这会导致闪烁,他们看到一个页面然后被发送到另一个页面.
看起来我想要做的就是在显示任何屏幕之前等待本地存储调用.
我的问题是:由于代码现在已经存在,是否会出现错误情况,平台准备好在根页面设置之前触发,从而导致某种问题?我应该如何处理Ionic 2和Angular 2中的这种情况?我应该将get localStorage调用同步,还是应该将其填充到Angular 2中属于应用程序或页面生命周期的另一个事件或方法中?
我应该使用某种可观察或等待语法吗?
export class MyApp {
rootPage: any;
local: Storage = new Storage(LocalStorage);
constructor(platform: Platform) {
this.local.get('user').then(user => {
if (user) {
this.rootPage = TabsPage;
} else {
this.rootPage = LoginPage;
}
});
platform.ready().then(() => {
// Will this ever fire before the rootpage is set?
StatusBar.styleDefault();
});
}
}
Run Code Online (Sandbox Code Playgroud)
您不需要添加对本地存储的异步调用,如本例所示: https: //github.com/RedFroggy/ionic2-nfc-app/blob/master/app/app.ts#L52
您只需检查本地存储中的用户是否存在,并将 rootPage 设置为 HomePage 或 LoginPage。
| 归档时间: |
|
| 查看次数: |
7242 次 |
| 最近记录: |