我正在使用 PhoneGap 为 android 和 ios 开发一个移动应用程序,我想实现一个登录方案,如 gmail 和 facebook 应用程序,即用户必须第一次输入用户名和密码,之后应用程序应该自动登录他们一旦它开始。我通过 ajax 和 jquery 调用 Web 服务来验证登录凭据。
我看过很多关于 ios 的帖子,描述了如何修改 delegate.m 文件,那么 android 呢?
您可以将用户会话数据存储在持久的存储形式中。检查用户是否已使用此数据登录。
http://docs.phonegap.com/en/2.1.0/cordova_storage_storage.md.html#localStorage
所以步骤将是:
1.检查用户是否使用存储在本地存储中的数据登录。您可以存储会话 id 或布尔值,例如 isLoggedIn。
2.如果 session id 为 null 或 isLoggedIn boolean false ,将登录表单呈现给用户。
3.否则显示主屏幕。
确保在用户注销时删除数据。
你可以在 JS 中使用本地共享首选项。
如果它为空,则转发到登录页面否则主页。
初始化代码:
//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");
首次登录时存储用户名、密码,
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"]);
}
}