我正在使用jQuery mobile和PhoneGap(1.9.0)开发windows mobile 7应用程序。我在应用程序中有多个html页面,所有页面中的数据都是通过JSON解析加载的,需要存储一些数据。所以我使用localStorage进行数据存储(因为windows浏览器还没有通过phonegap支持数据库)。在Windows浏览器中,本地存储仅适用于phonegap的deviceready事件。
document.addEventListener("deviceready", mymethod, false);
function mymethod(){
}
除了当我在页面之间导航时,白色屏幕首先出现,然后新页面将会出现,所以每件事情都能正常工作。哪个看起来很糟糕
我使用window.location.href='page2.html';
(每种方法都可以正常工作但延迟在页面之间导航)
在屏幕之间导航。
但是当我使用
时$.mobile.changePage("page2.html");
然后白屏将消失,但我的deviceready方法将无法工作,并且会出现带有一些静态数据(页眉和页脚)的空白屏幕。请告诉我我错在哪里。我应该如何使用$.mobile.changePage("page2.html");
,并在下一页中,我的页面加载了来自本地存储或json解析的内容。或使用window.location.href='page2.html';
但没有白色华丽的屏幕。
我希望你们都理解我的问题 有没有解决这个问题的方法。
答案 0 :(得分:1)
您应该使用$.mobile.changePage("page2.html");
,因此jqm将使用Ajax加载此页面(并且可以进行很好的转换)。将不再有deviceready事件(当您留在页面中时),但是当显示页面时,您可以捕获pageshow
事件。
(来自文档:http://jquerymobile.com/demos/1.1.1/docs/api/events.html)
$( 'div' ).live( 'pageshow',function(event, ui){
alert( 'This page was just hidden: '+ ui.prevPage);
});