2 votes

Ionic 2 redirige vers une autre page après le démarrage de l'application

Je veux rediriger la page vers la page d'accueil (remplacer la page de connexion) lorsqu'elle a déjà un jeton dans localStorage. Comment faire ? J'ai le code suivant dans le constructeur() de app.component.ts, mais il affiche d'abord le login avant que la requête ne soit terminée

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

5voto

Paresh Gami Points 3048

Pouvez-vous aimer

    @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;
        });
     }

0voto

La solution est de générer une page nommée splash et d'y placer la page racine de l'application et de vérifier le jeton lors de la construction. En cas d'échec, la page racine sera la page de login et en cas de succès, la page racine sera la page d'accueil.

Je pense que c'est la seule solution. Une page de garde comme vérificateur d'identité.

Peut-être que cela aidera d'autres

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X