PhoneGap / Android应用程序上的空白屏幕

时间:2013-09-09 13:17:35

标签: ajax jquery jquery-mobile cordova

我正在努力使用Phonegap-Android应用程序。我正在使用jQuery Mobile 1.3.1和jQuery 1.9.1,以及Phonegap 2.9.0。我在index.html中有一些数据角色页面,我用ajax函数动态生成其他一些页面。问题是,在显示动态生成的页面后,屏幕全部变为白色。如果我在index.html中静态创建的页面之间导航,则不会发生这种情况。

有什么建议吗?我试过了:

  • < meta name =“viewport”content =“width = device-width,user-scalable = no”/>

  • CSS:.ui-page { -webkit-transform:translateZ(0); -webkit视角:1000; -webkit-backface-visibility:hidden; -msie-backface-visibility:hidden; -ms-backface-visibility:hidden; }

  • defaultPageTransition =“none”

使用Mustache.js创建新页面。

1 个答案:

答案 0 :(得分:0)

快速尝试的方法是在jQuery Mobile中全局启用DOM缓存:

$.mobile.page.prototype.options.domCache = true;

pageContainerElement.page({ domCache: true });

我想说它源于一个不包含动态生成标记的给定页面,为了利用jQM的ajax导航你需要它...它使用它自己的内部历史跟踪对象来加速hashchange和/或popstate事件。

除此之外,我将介绍如何将动态页面实际添加到DOM中。您应该能够继续使用Mustache的模板插件,但是您必须确保使用jQM将标记添加到DOM。 (或者经历一个可能很长的创建覆盖的过程...我认为如果可能的话你应该避免。)

当您使用jQM更新DOM时,它会确保正确的事件以正确的顺序触发,从而使应用程序数据/状态保持最新。

我确定你正在使用这些文档,但我会再看一遍。可能会让您更好地了解需要停止使用或扩展/覆盖的Mustache方法。

希望这有帮助。

  

jQM参考

     

DOM缓存:http://view.jquerymobile.com/1.3.1/dist/demos/#nav-cache

     

导航事件:http://view.jquerymobile.com/1.3.1/dist/demos/widgets/navigation/#nav-event-example

     

动态页面加载:http://jquerymobile.com/demos/1.3.1/docs/pages/page-dynamic.html