2017-09-05 38 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。

相關問題