PhoneGap + jQueryMobile:Android后退buttonclosures嵌套列表中的应用程序

我正在使用PhoneGap和jQuery Mobile创build一个应用程序。

使用jQuery Mobile我已经创build了一个嵌套列表。

点击进入嵌套列表后,我想返回。 我希望点击我的Android(N1)上的后退button,它会回到一个级别。

但是,而不是closures应用程序而不是回到了一个级别。

使用PhoneGap 1.2.0,jQuery Mobile v1.0rc2,jQuery 1.6.4,Android 2.3.3。

编辑:升级到jQuery Mobile 1.0,没有任何改变

  • jQuery和移动浏览器的兼容性?
  • Android上的JQuery Mobile / Phonegap - 所有文本都以大写字母显示
  • 一个button - 3个app store - 如何将用户redirect到相应的app store?
  • cordova3.4 - 检测键盘事件
  • 电话媒体声音停止播放5次后
  • Samsung Galaxy Devices不能使用geolocation.getCurrentPosition
  • Android浏览器快速连续两次点击事件
  • Phonegap媒体API(Android) - 媒体未定义
  • 我有这个相同的问题,我发现如何处理java代码中的后退button。

    如果可能的话,这可以返回一步,否则退出应用程序。

    @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(appView.canGoBack()){ appView.goBack(); return true; } } return super.onKeyDown(keyCode, event); } 

    也可以在javascript端做到这一点:

     document.addEventListener("backbutton", function() { //Logic// }, false); 

    你可以听后退button事件:

     document.addEventListener("backbutton", onBackKeyDown, false); function onBackKeyDown() { // Handle the back button } 

    如果当前页面是主页(jQuery Mobile中的$ .mobile.activePage),则从应用程序退出:

    navigator.app.exitApp();

    另请尝试:

     function onBackKeyDown(e) { e.preventDefault(); if ($.mobile.activePage.attr('id') == 'main') { <!-- navigator.app.exitApp(); --> device.exitApp(); } else { history.back(1); } } 

    对于那些来到这里,因为应用程序在关注文本归档后按下backButton后closures:在Android 4.0.3(ICS)中,您不必使用phongap API覆盖backButton,以便在关注之后停止closures/崩溃应用程序input文本字段,然后按后退button。 通常这会closures应用程序,因为webkit创build一个额外的轮廓,不能用css改变的龙头突出显示。

    当你把注意力集中在input软键盘上时。 当你第一次按backButton时,你的软键盘消失。 当你再次点击导航历史logging时,应用程序正在closures,而不是跳到之前访问的页面。 这是因为突出显示跳出了导航结构。 它似乎不在DOM中。 我不太了解这种行为。 这是解决scheme:

    只需添加

     input { -webkit-user-modify: read-write-plaintext-only } 

    这会中断webkit做一个tap-highlight,你仍然留在应用程序中,并可以使用backButton(不覆盖)返回History。

    请享用。

    这是使用诸如PhoneGap之类的东西的问题,它们以Android的方式构build应用程序。

    后退buttonpopup活动堆栈的最新活动。 因为您有一个看起来像多个活动的整个应用程序,实际上它是一个带有重叠的单个活动。 你必须做的,并记住这不是真正的做事的正确方法。

    您将不得不重新实现后退button的function,以使其返回到jQuery堆栈中,然后一旦平坦的Android应用程序是唯一剩下的东西,那么也可以从中退出。 我不知道如果PhoneGap允许你有很多Android系统的控制,但默认情况下,Android操作系统不会正常与您的jQuery列表。

    希望这提供一些见解。

    我来到这里是因为在Cordova / PhoneGap应用程序中的文本字段( inputtextarea )内的后退button的问题,不会触发正常行为(在我的情况下,它不会触发我的JavaScript处理程序)。

    不幸的是,使用CSS的上述解决scheme在Android 2.3上不起作用。

    而select的解决scheme,它覆盖Java中的事件,是不够的,因为我需要触发一个JS处理程序,而不是在web视图回去。 此外,此解决scheme正在重新实现默认的Cordova行为,这不是最佳实践,因为它会丢失其他内置function。

    所以,我所做的(和它的工作)是覆盖KeyUp事件,但是,而不是重新实现,我只是在appVIew(这是Cordova的实现)上调用处理程序。

     @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return appView.onKeyUp(keyCode, event); }