2011-01-13 87 views
3

有一些應用需要登錄。我可以知道應用程序如何在Android上管理用戶會話嗎?例如,一旦用戶登錄到應用程序,下次用戶啓動應用程序時,它將直接進入主頁而不是登錄頁面。而如果用戶第一次啓動應用程序或登錄前,應用程序將以登錄頁面開始。 PhonePhone可以處理這個問題嗎?謝謝。Android應用登錄

回答

3

根據您所針對的Android版本以及您運行的是哪個版本的PhoneGap,您應該使用瀏覽器中提供的內置脫機存儲機制之一。這些包括localStorage和WebKitSQLite。

還有一個奇妙的開源庫,可以使用它抽象出任何特定的脫機存儲機制,並允許可交換的底層存儲適配器,並提供一個統一的鍵/值接口。圖書館被稱爲Lawnchair - 檢查出來!

所以載,你會實例Lawnchair,看看你保存的用戶參數存在:

function onLoad() { 
    myStore = new Lawnchair(); 
    myStore.get('login', function(i) { 
     if (i == null) { 
      // user did not login before, no saved credentials. 
     } else { 
      // user DID login, we can now auto-login for the user. 
     } 
    }); 
} 

此外,在成功的手動登錄,您可以保存憑據Lawnchair,使他們將可下一次你的PhoneGap應用程序加載,並檢查他們的存在:

function login(username, password) { 
    /* 
    * Do the login stuff here 
    */ 
    if (/* login was successful */) { 
     myStore.save({key:'login',value:{username:username, password:password}}); 
    } else { 
     alert('Could not log you in!'); 
    } 
} 

的你在這裏看到的代碼在兩個塊之間最重要的位是對get()函數的第一個參數,而key屬性傳遞給save()函數。這兩者都需要匹配以檢索相同的對象。

希望有幫助!

-1

不知道phonegap是什麼,但我想通常應用程序只是將登錄名存儲在shared preference s的某處。所以,你需要的只是在啓動時檢查是否有一些特定的偏好。如果沒有,則應顯示登錄頁面。

0

您可以將其存儲在首選項中。這裏是如何

SharedPreferences settings = .getSharedPreferences("some_key, MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putString("token", "123456"); 
     editor.commit(); 

下次啓動應用程序,你可以檢查,看看這是否存在。希望它有幫助