Ionic 2 перенаправляет на другую страницу после загрузки приложения

Я хочу перенаправить страницу на домашнюю страницу (переопределить страницу входа), когда у нее уже есть токен в localStorage. Как это сделать? У меня есть следующий код в конструкторе() в app.component.ts, но он сначала отображает логин, прежде чем запрос будет завершен.

statusBar.backgroundColorByHexString('#D32F2F');
      splashScreen.hide();
      if(localStorage.getItem('token')){
        authProvider.silent_login().subscribe(res => {
          console.log(res);
          if(res.error==0){
            this.rootPage = HomePage;
          }
        })
      }

person Moch. Rizal Rachmadani    schedule 30.05.2017    source источник
comment
Я думаю, вы также установили rootPage перед конструктором (), верно?   -  person Paresh Gami    schedule 30.05.2017
comment
Да, что я хочу. Но я не против, как это сделать   -  person Moch. Rizal Rachmadani    schedule 30.05.2017


Ответы (2)


Тебе нравится

    @ViewChild(Nav) nav: Nav;
    rootPage: any = null; // Initialize it as null
    pages: Array<{title: string, component: any}>;

    constructor(public platform: Platform, 
                public statusBar: StatusBar, 
                public splashScreen: SplashScreen,
                public commonProvider: CommonProvider) {

        this.commonProvider.retrieve("is_login").then(loggedIn => {
            // Assign the right page after checking the status
            this.rootPage = loggedIn ? TabsPage : SigninPage;
        });
     }
person Paresh Gami    schedule 30.05.2017
comment
Np :) Я всегда использую подобный подход, когда мне нужно решить, какая страница должна отображаться при запуске. Я думаю, что этот ответ должен быть принятым ответом. - person sebaferreras; 30.05.2017
comment
Ну правильный подход. Ценить. Я собираюсь использовать это в проекте. - person Paresh Gami; 30.05.2017
comment
@PareshGami Спасибо за решение. Это работает отлично. - person Moch. Rizal Rachmadani; 30.05.2017
comment
@sebaferreras Спасибо за редактирование. Это так просто, как создать новую заставку - person Moch. Rizal Rachmadani; 30.05.2017

Решение заключается в создании одной страницы с именем splash и установке для нее корневой страницы приложения, а в конструкторе мы проверяем токен. В случае неудачи установите корневую страницу для входа в систему, а в случае успеха установите корневую страницу на домашнюю страницу.

Я думаю, это единственное решение. Заставка в качестве средства проверки учетных данных.

Может другим поможет

person Moch. Rizal Rachmadani    schedule 30.05.2017