android上的jquery mobile和phonegap后退按钮

时间:2011-11-27 22:22:13

标签: jquery android mobile jquery-mobile cordova

我正在尝试使用jquery mobile的api在我的android上创建一个移动应用程序。当我尝试将某些内容链接到另一个页面时,我点击了android后退按钮,显示另一个页面,而不是我所在的原始页面。

<div data-role="page" id='home'>
<div data-role="content">
<a href='#next_page'>Next Page</a>
</div>
</div>

<div data-role="page" id='next_page'>
<div data-role="content">
Content
</div>
</div>

<div data-role="page" id='wrong_page'>
<div data-role="content">
Content
</div>
</div>

所以,如果我在主页,我点击链接“下一页”,我转到next_page,但是当我点击android设备上的后退按钮时,出现了错误的页面。知道为什么会这样吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

可能您的HTML代码语法有问题。你可以尝试:

  1. 使用jqm自动生成后退按钮,请参阅“后退”按钮链接here

  2. 使用backbutton的特定API并对您想要的功能进行硬编码。

答案 1 :(得分:0)

如果您对网页使用不同的HTML文件,请在代码上使用data-rel =“back”而不是“#(tagID)”,这将转到上一页。

否则,如果您在同一HTML文件中使用DIV进行分页。在你的.js文件中使用“.hide”来隐藏div,除了你要显示的那个,就像这样

$("#1stdiv").hide();
$("#2stdiv").hide();
$("#3stdiv").hide();
$("#4stdiv").show();
$("#5thdiv").hide();

要在backpage历史记录中进行操作,请在进入页面后立即实现堆栈并将页面弹出到堆栈中,然后在backbutton onclick上编写 onclick 函数,该函数应显示堆栈中的顶部元素。 像这样

document.addEventListener("deviceready", onDeviceReady, false);
 function onDeviceReady(){
     document.addEventListener("backbutton", onBackKeyDown, false);
 }
function onBackKeyDown(){
   //hide all div except the div which is in top of stack 
 }

但是,当您在phonegap中使用时,请确保在HTML文件中添加<script src="cordova.js"></script><script src="phonegap.js"></script>