我希望用户在他们回来时显示他们访问过的最后一页。示例:用户加载我的应用(我使用PhoneGap),点击#second_page,关闭应用,再次打开应用。而不是#home页面,我想立刻向他展示#second_page。
我使用localStorage保存页面:
$(document).on('pagechange', function() {
localStorage.setItem('lastPage',window.location.hash);
});
我试过了:
$(document).bind("mobileinit", function(){
var lastPage = localStorage.getItem('lastPage');
if(lastPage) {
$.mobile.changePage(lastPage);
}
});
但是我得到了一个"未捕获的TypeError:无法调用方法'触发'未定义" jquery.mobile-1.2.0.min.js中的错误:2。
另一个想法是沿着这些方向做点什么:
var redirectedToLastPage = false;
$(document).bind("pageinit", function(){
var lastPage = localStorage.getItem('lastPage');
if(lastPage && !redirectedToLastPage) {
$.mobile.changePage(lastPage);
redirectedToLastPage = true;
}
});
但它看起来并不优雅。我该怎么办?
答案 0 :(得分:0)
我最终得到了这个解决方案:
$(document).on('pagechange', function() {
var lastPage = '#'+$.mobile.activePage.attr('id');
// console.log('setting last page to '+lastPage);
localStorage.setItem('lastPage',lastPage);
});
var redirectedToLastPage = false;
$(document).bind("pagecreate", function(){
var lastPage = localStorage.getItem('lastPage');
if(lastPage // lastPage needs to be set
&& !redirectedToLastPage // only do it on first pageload
&&!window.location.hash // we don't want to redirect from pages other than the homepage
) {
if($("div[data-role='page']"+lastPage).length) { // make sure a "page" div with that ID exists!
// console.log('redirecting to '+lastPage);
$.mobile.changePage(lastPage);
}
// else {
// console.log(lastPage+' does not exist!');
// }
}
redirectedToLastPage = true;
});
请随时指出我可能做错的任何事情:)