我有一个使用jqm的phonegap应用程序在android和ios中运行良好。
移植到WP7我的历史记录存在问题,特别是 history.back()(还有 .go(-1)等)。这指的是回到过去的“页面”在同一个物理html文件中的历史记录,只是一个不同的 data-role = page div。
在常规浏览器中使用jwm网站很好(在同一个html文件中使用单独的“页面”)。此外,当我们从应用程序中的一个html文件转到另一个html文件时,使用history.back()很好。这是WP7.5,jqm和PG的具体组合。
有没有人遇到过这方面的解决方案?这让我很疯狂,自从PG 1.4.1和jwm 1.0以来就一直存在问题。
编辑1:在WP7.5上初始化webview的phonegap过程可能会在加载后覆盖jqm历史覆盖。
编辑2:肯定与jqm无法修改历史记录有关。每次“页面”更改时,history.length仍为0.
编辑3:当我检查'历史'对象时,我发现没有 replaceState 或 pushState 的功能 - 我知道jqm使用它来进行历史导航,也许这就是问题所在。
答案 0 :(得分:1)
if (device.platform == 'WinCE') {
window.history.back = function () {
var p = $.mobile.urlHistory.getPrev();
if (p) {
$.mobile.changePage("#" + p.pageUrl, { reverse: true });
$.mobile.urlHistory.stack.splice(-2, 2);
$.mobile.urlHistory.activeIndex -= 2;
}
}
}