我是Phonegap编程的新手,希望有人可以在这里为我提供帮助:
使用了cordova 1.7.0,Jquery 1.7.2和JQM 1.1.0。该应用程序正在Android上进行测试。
我正在尝试为该应用创建启动页面。
<body>
<div data-role="page" id="page_loading">
<div data-role="content">
<h1 >
<b>welcome</b>
</h1>
</div>
</div>
<div data-role="page" id="page_1">
</div>
<div data-role="page" id="page_2">
</div>
</body>
我在
$.mobile.changePage($('page_1'), { changeHash: false});
函数的末尾放置了onDeviceReady()
。应用启动时,它会立即显示加载页面,加载完成后,它将移至第一页。在第一页上,当我按page_1上的后退按钮时,它将退出该应用程序。这就是我要的。
然后,我再次使用mobile.changePage转到第2页。如果仍然使用
changeHash: false
,后退按钮将再次退出该应用程序。如果我使用changeHash: true
,则后退按钮不会返回到page_1,而是会转到加载页面。如果在从加载到第1页的过渡中使用
changeHash: true
,则第2页上的后退按钮将调出第一页,但在第一页上将调出加载的页,而不是退出应用程序。我的问题是:如何使后退按钮回到第2页,第3页等的历史记录,但退出第1页的应用程序?
我的猜测是我必须以某种方式重建/清除哈希。谁能告诉我如何?谢谢
最佳答案
我有同样的问题,并使用了一种解决方法:
页面布局:
<body>
<!-- page_1 before page_loading in source -->
<div data-role="page" id="page_1">
</div>
<!-- page_loading will be shown first -->
<div data-role="page" id="page_loading">
<div data-role="content">
<h1 >
<b>welcome</b>
</h1>
</div>
</div>
<div data-role="page" id="page_2">
</div>
</body>
jQuery的:
function onBodyLoad()
{
//go to page_loading before deviceready without keeping it in browser history
$.mobile.changePage('#page_loading', {reverse: false, changeHash: false});
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
//your initialization code here...
//now go to page_1 without keeping it in browser history since the actual first page was #page_1 already
$.mobile.changePage('#page_1', {reverse: false, changeHash: false});
//your code here...
}
这应该符合您的需求,只需尝试一下...