我正在开发一款适用于Windows手机的应用。应用程序本身工作正常,除了后退按钮(设备)。后退按钮可以正确导航,直到它停止的某个点。此时它显示了AJAX加载器。如果再次按下后退按钮,应用程序将关闭。
我的应用程序结构如下(我使用的是多页结构):
应用加载 - >用户必须选择语言 - >带有按钮到其他页面的主屏幕
在主屏幕上,用户可以进一步导航到应用程序。后退按钮正常工作,直到必须再次显示主屏幕。
以下是主屏幕的示例:
<div data-role="page" id="zero">
<div data-role="content">
<a href="#one" data-role="button" id="button-one" data-icon="plus">button-one</a>
<a href="#two" data-role="button" id="button-two" data-icon="plus">button-two</a>
<a href="#three" data-role="button" id="button-three" data-icon="plus">button-three</a>
<a href="javascript:randomFunction();" data-role="button" id="button-four" data-icon="plus">button-four</a>
</div>
</div>
我使用一些激活javascript功能的按钮。在这些功能结束时,我使用$.mobile.changePage("#four");
导航到该页面。
所有按钮都能正常工作,但当导航回主屏幕时,它会停止并显示AJAX加载程序。
也许一些有用的信息 - 我的设备就绪功能如下所示:
*如果localstorage包含该语言的值,请设置语言并导航到主屏幕。
*如果localstorage不包含该语言的值,请导航到用户可以选择语言的页面。
注意:当在用户可以选择语言的页面上按下后退按钮时,应用程序关闭(正常),此后,用户将导航到主屏幕。如果在此处按下后退按钮,则应用程序也会关闭。我发现这有点奇怪,因为我认为它必须导航回语言选项页面。
答案 0 :(得分:3)
我不知道您使用的Windows Phone版本,但我遇到了WP 8.1的一些后退按钮问题。 cordova back button事件似乎无效。我为Windows Phone做了一个自定义后退按钮实现。
WinJS.Application.addEventListener("backclick", function (evt) {
if (!jQuery.mobile.activePage.is("#mainPage")) {
history.back();
// Prevent the default behavior by returning true. evt.preventDefault doesn't cancel the external code.
return true;
}
// Execute the default behavior.
return false;
};