在Android 2.2中缺少PageShow事件

时间:2013-03-20 07:27:28

标签: android cordova jquery-mobile pageshow

我有一个问题,我遇到了Android 2.2和2.3.3 avd / phone,但如果我使用intel atom image for avd则没有。我正在使用phonegap 2.3.0和jqm 1.3.0。 我在页面上丢失了一个pageshow事件,我的应用程序被破坏,导致导航不再起作用:

    03-19 16:09:13.045: I/CordovaLog(2733): Found log level DEBUG
03-19 16:09:13.045: I/CordovaLog(2733): Changing log level to DEBUG(3)
03-19 16:09:13.055: I/CordovaLog(2733): Found preference for useBrowserHistory=true
03-19 16:09:13.055: D/CordovaLog(2733): Found preference for useBrowserHistory=true
03-19 16:09:13.065: I/CordovaLog(2733): Found preference for exit-on-suspend=false
03-19 16:09:13.065: D/CordovaLog(2733): Found preference for exit-on-suspend=false
03-19 16:09:18.395: D/CordovaLog(2733): mobile init
03-19 16:09:20.785: D/CordovaLog(2733): init pgSplash
03-19 16:09:20.995: D/CordovaLog(2733): page before show: pgSplash
03-19 16:09:21.285: D/CordovaLog(2733): pageshow : pgSplash
03-19 16:09:21.355: D/CordovaLog(2733): init
03-19 16:09:22.035: D/CordovaLog(2733): Falling back on PROMPT mode since _cordovaNative is missing.
03-19 16:09:22.285: D/CordovaLog(2733): device ready
03-19 16:09:22.295: D/CordovaLog(2733): check version
03-19 16:09:23.795: D/CordovaLog(2733): init pgLogin
03-19 16:09:24.045: D/CordovaLog(2733): page before show: pgLogin

它缺少pgLogin的pageshow事件,导航被破坏。 我绑定:

$('[data-role=page]').live('pageshow', function (event, ui) {

         lastPage = $.mobile.activePage.attr('id');
         console.log('pageshow : ' + lastPage);
...
});

正如您在日志中看到的,我从jqm获取移动初始化事件,我从phonegap和第一页获取设备就绪事件:pgSplash触发所有事件:init,show show page,pageshow。但在那之后它就被打破了。 在4.1 emulator / galaxy tab设备上,它没有任何问题。

1 个答案:

答案 0 :(得分:0)

您使用的是jquery 1.9吗? live从1.9开始折旧。开始使用on代替live

为什么不使用页面ID?而不是[data-role=page]并看到了?