我的移動應用程序的行爲在iOS上符合市場預期,但在Android版是一個鏈接到一個新的頁面之前滾動的任何溢出的div被點擊,滾動回返回時返回頂部。頁面似乎沒有重新加載,只是在轉換完成之前滾動到頂部。的Android的PhoneGap使用jQuery移動 - 後退按鈕導致滾動到
我似乎遇到了討論here的問題。沒有提出的解決方法發佈在那裏有幫助。
我使用PhoneGap的2.0.0和jQuery移動1.2.0
任何人都有一個解決方案嗎?
我的移動應用程序的行爲在iOS上符合市場預期,但在Android版是一個鏈接到一個新的頁面之前滾動的任何溢出的div被點擊,滾動回返回時返回頂部。頁面似乎沒有重新加載,只是在轉換完成之前滾動到頂部。的Android的PhoneGap使用jQuery移動 - 後退按鈕導致滾動到
我似乎遇到了討論here的問題。沒有提出的解決方法發佈在那裏有幫助。
我使用PhoneGap的2.0.0和jQuery移動1.2.0
任何人都有一個解決方案嗎?
禁用後退按鈕是不是我的可行的解決方案,並且由於history.back()被用於回導航JQM框架內,相同的結果仍然存在反正。即使使用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
});
Android後退按鈕會使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");
}
這是我選擇的方法。如果你想利用後退按鈕,那麼這個解決方案不適合你。
感謝您的回答。請參閱我發佈的方法。我有興趣瞭解爲什麼你我看起來會得到不同的結果。對我而言,如果我使用後退導航圖標或按鈕,則無關緊要。我得到相同的結果。 – Inator 2013-03-04 17:04:29