作者:450651324_43c723 | 来源:互联网 | 2023-05-20 10:00
我使用cordova和angular.js为我的移动应用程序提供了以下逻辑
处理我在index.html中包含的mobile.js中的逻辑,比如在sdcard上保存文件,然后使用用户将用户重定向到第二个html页面
window.location.href="main.html";
这将使用mobile.js放入sdcard的文件
我面临的问题是,当我在main.html的主页上并且用户按下后退按钮时,它会返回到index.html文件,然后在处理之后返回到main.html而不是App关闭.
我尝试将history.length对象与"backbutton"eventListener一起使用
document.addEventListener('deviceready',function(){
document.addEventListener('backbutton',function(e){
console.log("history is "+history.length);
if(history.length==1){
e.preventDefault();
navigator.app.exitApp();
}
else{
navigator.app.backHistory();
}
},false);
},false);
但它不会减少返回时的长度,只会增加它,所以应用程序返回到index.html.(history.length总是大于1)
我看过可用的解决方案,比如
document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#homepage')){
/*
Event preventDefault/stopPropagation not required as adding backbutton
listener itself override the default behaviour. Refer below PhoneGap link.
*/
//e.preventDefault();
navigator.app.exitApp();
}
else {
navigator.app.backHistory()
}
}, false);
但使用它的问题是,如果用户去
second-page->homepage->third-page->homepage
应用程序将退出,但应转到第三页.