Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果未登录,则Phonegap索引重定向到登录_Javascript_Android_Cordova_Phonegap - Fatal编程技术网

Javascript 如果未登录,则Phonegap索引重定向到登录

Javascript 如果未登录,则Phonegap索引重定向到登录,javascript,android,cordova,phonegap,Javascript,Android,Cordova,Phonegap,因此,我在myapp.js上有一个与索引页相关的javascript: myApp.onPageBeforeInit('index', function (page) { if (localStorage.login == 'true') { console.log('logged'); } else if (localStorage.login == 'false') { console.log('not

因此,我在myapp.js上有一个与索引页相关的javascript:

myApp.onPageBeforeInit('index', function (page) {
        if (localStorage.login == 'true') {
          console.log('logged');
        }
        else if (localStorage.login == 'false') {
          console.log('not logged in')
          mainView.router.loadPage({
            url: 'login.html',
            ignoreCache: true,
            reload: false});
        }
    }).trigger();
它的作用是,每次我进入索引页面时,如果我没有登录,它会将我发送到登录

问题是,我使用的是
pushState:true
,所以android的后退按钮可以工作。 但是当我被重定向到登录页面时,如果我按下后退按钮,我会再次转到索引页面,即使我没有登录,它也不会再重定向我,因为该页面之前已经启动,并且没有再次启动…我如何修复此问题

一个解决办法是强制pushState在返回时总是重新加载上一页…但我不知道如何做到这一点


有什么帮助吗?

您可以尝试在另一个事件中添加相同的“已记录”测试,例如“onPageBeforeAnimation”或“onPageBack”(或者如果处于索引中且未记录,也可以防止状态被推送到历史记录中)。您的意思是对onPageBeforeAnimation和onPageBack也执行相同的操作吗?我不认为它会起作用。。。因为当我按下“上一步”按钮时,它只是返回到历史记录中,视图更改为最后一个,但我认为不会执行任何代码。理论上,在转换到另一个页面之前,会执行
onPageBeforeAnimation
(您应该测试目标页面,而不是当前页面),和
onPageBack
当您按下后退按钮时(仍然需要找到如何获取目标页面),我看不出有任何理由不触发这些命令