2016-05-19 26 views
3

我有一個Ionic應用程序,我想在登錄頁面中放入一個「記住我」複選框,以便用戶登錄後他將永遠登錄(除非他退出),即使他關閉並重新打開應用程序,就像Facebook應用程序一樣。 有沒有辦法做到這一點在離子2?Ionic 2應用程序:記住設備上的用戶

謝謝!

回答

6

您可以使用localstorage爲您自己的驗證/邏輯處理保存一些數據。它支持html5並且易於使用。不利的一面是它不會安全,並且在內存不足或清除緩存時可能會被系統擦除。

HTML(一旦按下按鈕,但你可以將其設置爲您自己的喜好):

<button secondary (click)="addLocalStorage()">Done</button> 

在你的控制器:

import {Storage, LocalStorage} from 'ionic-angular'; 
constructor(navController, local) { 
    this.navController = navController; 
    this.local = new Storage(LocalStorage); 
} 
addLocalStorage(){ 
    this.local.set("didTutorial","true"); 
    //set the doneTutorial to be true 
} 

說明: 在構造函數中,我們創建了一個新的本地存儲對象,稱爲「本地」。 要調用它,我們使用'this.local','set'是存儲它的方法。

集(鍵,值)

在上述示例代碼,我使用「didTutorial」作爲密鑰和「真」作爲值。

要檢索它,您可以在此頁面或任何其他頁面檢索它。 。 只要記住進口倉儲localStorage的,並宣佈在構造一個新的localStorage對象(同上)

代碼檢索是:

var value = localStorage.getItem('didTutorial'); 

的GetItem(鍵,值)

+1

你說說它的缺點,這不是正確的做法嗎? Facebook這樣的專業應用如何做到這一點? –

+1

@MicheleStieven,如果你想存儲用戶憑證,那麼securestorage(android)和keychain(ios)可能是一個可能的選擇。有插件和庫。但對於記住我這樣簡單的事情,您可以像上面的示例一樣使用本地存儲。 – Gene

+0

@Gene爲什麼不能導入Storage和LocalStorage – Sreinieren

0

localStorage運行良好,但我確認了@Gene談論的缺點。這是不可靠的,特別是在那些沒有太多的空閒存儲

我用離子1,所以我不能嘗試這個解決辦法,但你可能想看看這個iPhone手機:​​ ;可以更可靠!

相關問題