2017-09-05 33 views
2

大家好我有对离子2. 我的登录表单当我登录令牌的问题是保存在存储和重定向到另一页,但用户的数据不会在Android或出IOS因为令牌不可用。我发现我需要重新加载页面,本地环境'location.reload()'完美,用户数据可用,但当我在Google Play和App Store上进行pusblish时无法使用。我如何可以重新加载使用离子2页

我试过一些方法来重新加载它,但不适用于Android和IOS。我能做什么?

登录功能

loginForm(){ 
const data = { 
    "username" : this.login.value.username, 
    "email" : this.login.value.username, 
    "password" : this.login.value.password, 
} 
this.dataService.loginUser(data).subscribe(
    (data) => { 
     let token = data.key; 
     this.dataService.checkAccessUserGroup(token).subscribe(
     (data) => { 
      if(data[0] == 200){ 
      this.storage.set('access_token', token); 
      //this.appCtrl.getRootNav().setRoot(HomePage); 
      //this.navCtrl.setRoot(HomePage); 
      //this.appCtrl.getRootNav().setRoot(this.navCtrl.getActive().component); 
      //this.navCtrl.push(HomePage); 
      //this.appCtrl.getRootNav().push(IndexPage); 
      //location.reload() 
      this.navCtrl.setRoot(HomePage).then(() =>{ 
       this.navCtrl.popToRoot(); 
      }); 

      } 
      if(data[0] == 500){ 
      this.generateAlert("Error",'No tienes permisos adecuados para acceder. Ponte en contacto con el administrador de tu Deck.'); 
      } 
     }, 
     (err) => { 
      if(err.status == 400){ 
      this.generateAlert("Error",'No hemos podido verificar tus datos. Intentalo de nuevo'); 
      } 
     } 
    ); 
    }, 
    (err) => { 
     if(err.status == 400){ 
     this.generateAlert("Error",'Usuario o constraseña no válido. Intentalo de nuevo'); 
     } 
    } 
); 
} 

登录HTML

<ion-content padding id="container-home" style="background-image:url('assets/img/bg-login.png')"> 

    <ion-row> 
    <ion-img class="logo-md" width="120" height="120" src="assets/img/mydecklogocolor.png"></ion-img> 
    </ion-row> 

    <ion-row id="auth-login"> 
    <ion-col col-12 no-padding> 
     <ion-row class="header"> 
     <h3>Ingresa</h3> 
     </ion-row> 
     <form id="login-container" [formGroup]="login" (ngSubmit)="loginForm()"> 
     <ion-row> 
      <ion-item> 
      <ion-input type="text" formControlName="username" 
         class="input-md"placeholder="Correo electrónico/usuario"></ion-input> 
      </ion-item> 
      <ion-item> 
      <ion-input type="password" formControlName="password" 
         class="input-md" placeholder="Contraseña"></ion-input> 
      </ion-item> 
     </ion-row> 
     <ion-row> 
     <button ion-button class="auth-btn" type="submit" [disabled]="!login.valid">Ingresar</button> 
     </ion-row> 
     </form> 
     <ion-row> 
     <a href="">¿Olvidaste tu contraseña?</a> 
     </ion-row> 
    </ion-col> 
    </ion-row> 

</ion-content> 
+0

你的意思是'this.storage.set( 'ACCESS_TOKEN',令牌);'犯规的时间设定?这是什么存储? –

+0

这就是离子储存https://ionicframework.com/docs/storage/ – nailujpeloz

回答

1

离子存储的情况下,返回两个集的承诺,得到的功能。所以它们是异步的。

所以,你可以尝试:

this.storage.set('access_token', token).then(()=>{ 

     this.navCtrl.setRoot(HomePage); 
}); 

你不需要 “刷新页面”。只要完成保存令牌,您就可以简单地将主页设置为root。

相关问题