Phonegap + jquery mobile + windows phone:后退按钮问题

时间:2013-03-22 19:36:08

标签: cordova jquery-mobile windows-phone back-button

我正在开发一款适用于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不包含该语言的值,请导航到用户可以选择语言的页面。

注意:当在用户可以选择语言的页面上按下后退按钮时,应用程序关闭(正常),此后,用户将导航到主屏幕。如果在此处按下后退按钮,则应用程序也会关闭。我发现这有点奇怪,因为我认为它必须导航回语言选项页面。

1 个答案:

答案 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;
};