有一些应用程序需要登录。我想知道这个应用程序如何在Android上管理用户会话?例如,一旦用户登录应用程序,下一次用户启动应用程序时,它将直接进入主页而不是登录页面。而如果用户第一次或登录之前启动应用程序,则应用程序将从登录页面开始。Phonegap能够处理这个吗?谢谢。
有一些应用程序需要登录。我想知道这个应用程序如何在Android上管理用户会话?例如,一旦用户登录应用程序,下一次用户启动应用程序时,它将直接进入主页而不是登录页面。而如果用户第一次或登录之前启动应用程序,则应用程序将从登录页面开始。Phonegap能够处理这个吗?谢谢。
根据您所针对的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()
函数的第一个参数和传递给 save()
函数的对象的 key
属性。这两个需要匹配才能检索到相同的对象。你可以将它存储在偏好设置中。以下是方法:
SharedPreferences settings = .getSharedPreferences("some_key, MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("token", "123456");
editor.commit();
下次应用程序启动时,您可以检查是否存在此内容。希望能帮到您。
不知道什么是PhoneGap,但我认为通常的应用程序只是在共享首选项中存储登录信息。因此,您所需做的就是在启动时检查是否有某个特定的首选项。如果没有任何首选项,则应显示登录页面。