2017-02-27 36 views
0

如何在啓動應用程序時檢查用戶是否已登錄。如果登錄,請將用戶引導至主頁,否則將用戶引導至LoginPage。Ionic 2.檢查在應用程序啓動期間是否登錄

我想在成功登錄存儲後存儲布爾值。當我啓動應用程序時,我想查看存儲是否包含某些內容?

this.storage.get('name').then((name) => { 
    console.log('Your name is', name); 
    this.sessa = name; 
    console.log('Your name is', this.sessa); 
}); 
if(this.sessa == null){ 
    this.rootPage = LoginPage; 
} 
else if (this.sessa != null) { 
    this.rootPage = HomePage; 
} 

換句話說。如何在成功登錄後將登錄頁面的值傳遞給app.component.ts。謝謝

+0

根據你的問題,無論你是否重定向到首頁都無所謂。你的意思是,如果沒有登錄,那麼重定向到LoginPage? –

+0

@sagar Kulkami。是 –

回答

0

在組件中爲app.component.ts文件放置一些條件邏輯,如果已登錄,請將rootPage設置爲您的主頁,否則將rootPage設置爲您的登錄頁面的組件。

+0

@JamesJavaCard不要將它添加爲評論,編輯您的問題。 –

+0

看起來不錯。它是否可以爲您提供解決方案? –

+0

@Jay Ordway,它工作正常。但我想在登錄後將值名稱存儲到存儲中。看到這裏:this.storag.get('name')。然後再次啓動應用程序後,它會檢查存儲是否包含某些東西,應該是,然後將我引導到鋤頭頁面。謝謝 –

1

從我正在閱讀的評論和解決方案中,我認爲您需要修正流程。讓我爲你做到這一點:

  1. 應用程序啓動。
  2. 檢查一些用戶是否已經登錄。
  3. 如果是,請轉到主頁。如果沒有,進入LoginPage。

現在,這真的很容易。由於您在檢查if(this.sessa == null)時沒有加載您的名字,因此失敗。另外,我認爲在你的存儲中爲isLoggedIn設置一個布爾值會比從名稱變量中理解更好。在你的代碼修復這樣的:

this.storage.get('isLoggedIn').then((isLoggedIn) => { 
    console.log('Is Logged in : ', isLoggedIn); 
    this.loggedIn = isLoggedIn; 
    if(!this.loggedIn){ 
     this.rootPage = LoginPage; 
    } 
    else if(this.loggedIn) { 
     this.rootPage = HomePage; 
    } 
}); 

現在,爲了回答你的第二個問題,關於你想從LoginPage傳遞價值app.component.ts,你需要創建這個事件,從申請開通app.component.ts並在登錄完成後發佈它。

查看離子2文檔中的事件here。另外,我已經回答了它here。通過離子團隊的會議應用程序here。他們已經做到了。如果這對你沒有幫助,請詢問具體情況。

+0

Kulkami。在登錄頁面。我通過這個值:this.storage.set('isLoggedIn',this.login.username);並在app.component.ts中。我有這些值:loggedIn:boolean; this.loggedIn = false; this.storage.get('isLoggedIn')。then((isLoggedIn)=> {'is Logged in',isLoggedIn); this.loggedIn = isLoggedIn; if(!this.loggedIn){ this.rootPage = LoginPage; } else if(this.loggedIn){ this.rootPage = Home; } });仍然不能正常工作 –

+0

如果你還沒有實現'Events',這將不起作用。只要看看會議應用程序代碼。另外,不要將'this.storage.set('isLoggedIn',this.login.username);'用戶名作爲布爾值。當用戶登錄時,'this.storage.set('isLoggedIn',true);'。註銷時,'this.storage.set('isLoggedIn',false);' –

+1

Kulkani。你的程序已經工作。非常感謝 –

相關問題