2013-10-03 30 views
2

我正在開發一個使用PhoneGap for android和ios的移動應用程序,我想實現一個像Gmail和Facebook應用程序這樣的登錄方案,即用戶必須首次輸入用戶名和密碼,之後應用程序應該自動登錄他們只要一開始。我通過驗證登錄憑證的ajax和jquery調用Web服務。如何使用Phonegap在Android中實現「一次登錄」?

我見過很多關於ios的帖子,描述瞭如何修改delegate.m文件,但那麼android呢?

回答

3

您可以將用戶會話數據存儲爲持久存儲形式。檢查用戶是否使用此數據登錄。

http://docs.phonegap.com/en/2.1.0/cordova_storage_storage.md.html#localStorage

所以步驟將是:

1,檢查用戶使用存儲在本地storage.You的數據可以存儲會話ID或布爾說isLoggedIn已登錄。

2.如果會話id爲null或isLoggedIn布爾值爲false,則向用戶呈現登錄表單。

3.否則顯示主屏幕。

確保刪除用戶註銷時的數據。

2

U可以在JS中使用本地共享首選項。

如果它爲null,則轉發到Login Page else Home Page。

初始化代碼:

//function to check if user is already logged in or not on Specific Screen 
    $(document).on("pageinit", "#idOfthePage",function(event){ 
    var u_name=localStorage.getItem("PMUsername"); 
    var u_pwd=localStorage.getItem("PMPassword"); 

if(u_name==""||u_name==null ||u_name=="null" || u_name=="undefined" || 
u_pwd==""||u_pwd==null ||u_pwd=="null" || u_pwd=="undefined" 
){ 
$.mobile.changePage("login.html"); 
} 
else 
{ 
$.mobile.changePage("home.html"); 
} 
    }); 

要設置在本地存儲值:

localStorage.setItem("PMUsername","some_value"); 
localStorage.setItem("PMPassword","some_value"); 
+0

你能告訴我在Phonegap項目中放置這行的位置:$(document).on(「pageinit」,「#load_splash」,function(event) – prateek

+0

它是一個pageinit方法,當用戶打開你的splash.html頁面時將會調用它。#load_splash是一個飛濺的html頁面的id。 –

+0

謝謝geet,但你能告訴我究竟把這段代碼放在擴展droidgap的文件中嗎? – prateek

1

存儲的用戶名,密碼,當你第一次登錄,

window.localStorage["username_rem"] = 'username'; 
window.localStorage["password_rem"] = 'password'; 

爲了記住添加此代碼在您的登錄頁面加載活動或登錄事件

if(window.localStorage["username"] != undefined && window.localStorage["password"] != undefined) 
{ 
    if(window.localStorage["username"] != "" && window.localStorage["password"] != ""){     
    $('#frm_login :input[id=Usernamel]').val(window.localStorage["username"]); 
    $('#frm_login :input[id=Password]').val(window.localStorage["password"]);     
    }    
} 
相關問題