我的移动应用程序在iOS上的表现与预期不谋而合,但在安卓系统中,在点击新页面链接之前滚动的任何溢出div,在返回时都会滚动回到顶部。页面似乎没有重新加载,只是在转换完成之前滚动到顶部。
我似乎遇到了here讨论的问题。张贴在那里的建议的变通办法都没有帮助。
我使用的是Phonegap2.0.0和jQuery Mobile1.2.0
有人有解决方案吗?
发布于 2013-03-05 01:02:26
禁用back按钮对我来说不是一个可行的解决方案,而且由于在jQM框架中使用了history.back()来进行后退导航,因此同样的结果仍然存在。即使使用Phonegap的navigator.history.back()替代方法也会产生负面影响。最后,我添加了这样的处理程序,这是可以改进的(欢迎提出建议):
/* ANDROID WORKAROUND */
$('div').on('pagebeforehide', function(event, ui) {
var scrollPos = $(this).find('.scrolldiv').scrollTop();
$(this).jqmData('scrollPos',scrollPos );
});
$('div').on('pagebeforeshow', function(event, ui) {
var page = $(this);
setTimeout(function(){
//using animate becuse I could not get scrollTo() to work (?)
$(page).find('.scrolldiv').animate({scrollTop: $(page).jqmData('scrollPos')}, 0);
},1); //add it to the JS process stack
});发布于 2013-03-04 14:10:31
安卓的后退按钮在PhoneGap上搞得一团糟。我所做的只是禁用了Android中的后退按钮。
$(function(){
document.addEventListener("deviceready", onDeviceReady, false);
})
// PhoneGap is loaded and it is now safe to call PhoneGap methods
//
function onDeviceReady() {
// Register the event listener
document.addEventListener("backbutton", onBackKeyDown, false);
}
// Handle the back button
//
function onBackKeyDown() {
console.log("Back button pressed but nothing happened");
}这是我选择的方法。如果你想使用后退按钮,那么这个解决方案不适合你。
https://stackoverflow.com/questions/15193186
复制相似问题