2

我正在为 Windows Phone 开发一个应用程序。除了(设备的)后退按钮外,该应用程序本身运行良好。后退按钮可以正确导航,直到它停止的某个点。此时它显示了 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 包含语言的值,请设置语言并导航到主屏幕。

*如果本地存储不包含语言的值,请导航到用户可以选择语言的页面。

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

4

1 回答 1

3

我不知道您使用的是什么 Windows Phone 版本,但我遇到了 WP 8.1 的一些后退按钮问题。科尔多瓦后退按钮事件似乎不起作用。我为 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;
};
于 2015-02-05T12:20:24.300 回答