【发布时间】:2013-12-17 07:18:03
【问题描述】:
我正在使用 phonegap 3.2.0 我只想为某些页面自定义 android 应用程序中的后退按钮。对于其他页面,它的行为与其默认行为一样。
我看过很多关于更改后退按钮行为的帖子,但没有找到如何在更改页面上的默认行为和自定义行为之间切换的任何地方。
我的应用中有 4 个页面
- 登录
- 创建帖子
- 完成后
- 设置
侧边栏导航菜单有三个链接
- 创建帖子(用于创建帖子页面)
- 设置(用于设置页面)
- 注销(适用于注销应用)
仅在创建帖子页面上填写表格后才打开完成帖子。完成后,用户将再次重定向到创建帖子页面。
问题:当用户来自登录或完成发布页面时,当用户在创建发布页面上按下返回按钮时,应用程序应该退出,否则它应该带我进入上次访问的页面。
我尝试了以下代码
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
$(document).on('pagebeforeshow', function(e, data){
document.addEventListener("backbutton", function(){
var lastpageid = data.prevPage.attr('id'); //LAST PAGE ID
var currentpageid = $.mobile.activePage[0].id //CURRENT PAGE ID
if(currentpageid == 'create-post' && (lastpageid == 'login' || lastpageid == 'finish-post')){
navigator.app.exitApp();
}else{
return true; // WHAT TO PUT HERE ?
//WHEN I PUT $.mobile.changePage('#'+lastpageid, { transition: 'slide' }, true);
//THEN FIRST IT OPENING LOGIN PAGE THEN AGAIN create-post PAGE
//AGAIN AND AGAIN DOING LIKE THIS.
//THIS BEHAVIOR OCCUR WHEN I PRESS BACK BUTTON ON finish-post.
}
}, false);
});
}
【问题讨论】:
-
通过使用带有页面ID的
pagebeforeshow you add multiplied bindings on the same button. be specific and usepageinit`,即$(document).on("pageinit", "#create-post, #login", function () { your code });。
标签: javascript android jquery jquery-mobile cordova