如何在PhoneGap中维护会话

6
我找不到解决方法。 我在PhoneGap中开发了一个单页应用程序,只有登陆页面。
登陆后,我将其重定向到网站。 现在的问题是,我必须在应用程序内保持登陆状态。
例如,如果用户退出应用程序而没有注销,则下次启动时不应该显示我的登录界面。它应直接进入网站。
在Android中,我们可以使用共享首选项来处理它,但我完全不了解PhoneGap。 当用户点击重定向网站中的注销时,我的应用程序登录界面应该出现,而不是网站的登录界面。
我已经搜索过了,但找不到任何有用的信息。
3个回答

10

你可以使用localStorage,正如Nurdin所说,它并不那么持久。

在这里阅读更多信息。 http://www.w3schools.com/html/html5_webstorage.asp

因此,在登录页面之前必须设置一个条件来检查用户是否已登录,即:

if(window.localStorage.getItem("loggedIn") == 1) {
// Logged In
// Redirect to first page after logged in.
}
else
{
// Redirect to login page.
}

登录页面,登录成功后。

window.localStorage.setItem("loggedIn", 1);
window.localStorage.setItem("username", document.getElementsByName("usernametextbox").value);

在注销页面清除本地存储的值。

window.localStorage.removeItem("loggedIn");
window.localStorage.removeItem("username");

亲爱的@KRIZTE,我没有注销页面或其他任何东西,我的主要问题是如何获取用户已单击注销链接(该链接位于该网站中),我只制作了登录页面,之后就将其抛到了网站上。您的答案真的很可贵,但我想知道用户何时单击注销链接。你明白我的意思吗? - GreenROBO

0

使用localStorage代替sessionStorage。更好的选择是使用sqlite。相比之下,SessionStorage只是暂时性的,而localStorage则更加持久。但是sqlite更加持久。

localStorage语法

localStorage.userId

sessionStorage 语法

sessionStorage.userId

SQLite

https://github.com/brodysoft/Cordova-SQLitePlugin


当用户点击网站上的注销按钮时,我该怎么办?我的单页应用程序如何知道用户已经点击了注销? - GreenROBO
你好,能否提供一些相关示例?抱歉,我是PhoneGap的新手。 - GreenROBO

0

这是单页应用程序。然后我直接抛给网站。 - GreenROBO
这对单页应用程序也适用。在显示闪屏界面时,您必须检查登录状态,如果用户已登录,则将其重定向到网站,否则重定向到您的登录页面。 - Ashish_B
当用户点击网站上的注销按钮时,我该怎么办?我的单页应用程序如何知道用户已经点击了注销? - GreenROBO
一个解决方案是:你可以使用iframe在你的应用程序中打开该网站,这将使控件保持在你手中,并且你可以随时访问你的本地存储。 - Ashish_B
其实我还不太明白,你能给个例子吗? 我正在使用你建议的LocalStorage,如果成功了就打勾接受 :) - GreenROBO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接