我有一个运行jQuery 1.9.1,jQuery Mobile 1.4.2和Phonegap 3.4.0的应用程序。
它有一个登录屏幕,这样当你第一次打开应用程序时,你输入了你的信息,它进行了一次AJAX检查,如果一切正常,那就存储你的信息并移动你经过那个页面。
理想情况是,每次将应用程序发送到后台(用户回家或切换应用程序),然后重新启动应用程序,他们必须再次登录。
目前我通过设置
在iOS中完成此操作<preference name="exit-on-suspend" value="true" />
我的config.xml
中的偏好设置。我在navigator.app.exitApp();
事件监听器中使用pause
在Android中完成了同样的事情。
这通常效果很好,但是一些旧版本的android有一个奇怪的问题。在回家并重新启动应用程序后,您将进入登录页面,您只需点击后退按钮,它就会将您带到退出之前您所在的最后一页,并且您仍然登录。我还有一个功能可以摧毁当应用程序暂停时,所有用户变量(呈现所有页面都无用),但似乎也会被忽略。在较旧版本的Android(特别是2.3)上,它们似乎忽略了pause
事件监听器。
如何解决这个问题,或者是否有更好的方法可以在重启时强制登录?
答案 0 :(得分:0)
在不知道您拥有的其他要求或主页可能会有什么行为的情况下,您可以捕获后退按钮事件并阻止它进入任何地方。
//set a bit or note that you are on the login page
var onHome = true;
...
document.addEventListener("backbutton", backButtonTap, false);
function backButtonTap(e) {
if(onHome) {
e.preventDefault();
alert('Please Login');
}
}
当然不是处理它的唯一或者最好的方法,因为用户似乎保持登录状态,你说它应该被删除,但它至少应该阻止导航离开登录页面并返回。