2013-03-04 27 views
1
頁面頂部

我的移動應用程序的行爲在iOS上符合市場預期,但在Android版是一個鏈接到一個新的頁面之前滾動的任何溢出的div被點擊,滾動回返回時返回頂部。頁面似乎沒有重新加載,只是在轉換完成之前滾動到頂部。的Android的PhoneGap使用jQuery移動 - 後退按鈕導致滾動到

我似乎遇到了討論here的問題。沒有提出的解決方法發佈在那裏有幫助。

我使用PhoneGap的2.0.0和jQuery移動1.2.0

任何人都有一個解決方案嗎?

回答

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 
}); 
2

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"); 
} 

這是我選擇的方法。如果你想利用後退按鈕,那麼這個解決方案不適合你。

+0

感謝您的回答。請參閱我發佈的方法。我有興趣瞭解爲什麼你我看起來會得到不同的結果。對我而言,如果我使用後退導航圖標或按鈕,則無關緊要。我得到相同的結果。 – Inator 2013-03-04 17:04:29