我已經花了最後幾個小時拉我的頭髮,應該是一個簡單的問題。JQuery Mobile後退按鈕不支持科爾多瓦1.9.0和Android 2.2
我想利用jQuery手機中的backButton功能來構建一個具有導航圖標的網站。 (這是我的理解,JQM只是調用window.history.back)
該網站在桌面瀏覽器和移動Safari瀏覽器中的預期完美。該網站在Android WebView中無法使用。 (值得注意的是,實際的硬件'清除'按鈕工作並將用戶退回一頁,但JQM圖標只是突出顯示並且無處可見。)
在某些時候,我說過擰它,並且只是稱爲window.history .back自己,但這在手機上什麼都不做。
這裏的軟件:
- jQuery Mobile的1.1.0
- 科爾多瓦/ PhoneGap的1.9.0
- 的Android 2.2
我已經看了許多問題已經問,但他們都沒有提供在Android上的1.1.0/1.9.0組合中似乎有效的解決方案。我也試過科爾多瓦1.8和1.7,同樣的問題。
下面是一個簡單的頁面標題:
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" src="cordova-1.9.0.js"></script>
下面是一個使用JQM調用內置功能:
<a href="index.html" data-icon="back" data-iconpos="notext" data-direction="reverse" data-rel="back" data-transition="slide"></a>
這裏是用我自己構建了一個電話:
$(document).ready(function() {
$("#backButton").click(handleBackButton);
});
function handleBackButton() {
window.history.back(); //Cordova does something funky with this on Android
}
...
<a id="backButton" href="index.html" data-icon="back" data-iconpos="notext" data-direction="reverse" data-transition="slide"></a>
更新
有關正向導航模型的一些示例,請參閱本要點。注意data-ajax="false"
將4頁
更新2 更新要點包括爲「科爾多瓦返回」 navigator.app.backHistory()
通話。這可以在物理頁面之間來回切換,但不能遵守JQM頁面DOM模型。關於如何統一兩者的任何想法? https://gist.github.com/3039722
我不想修改核心Cordova.js代碼,而是在應用程序中添加一些監聽器來處理此問題。有任何想法嗎?
感謝
是的。你的代碼可以工作,但是它並沒有像我的實際應用那樣被設置在相同的導航模型中。我已經在前面的導航模型中闡明瞭。添加第3頁和第4頁(單獨文件)會打破「強制返回」功能。在第4頁的鏈接中添加data-ajax =「false」'會打破'Rel Back'功能。 https://gist.github.com/3039722 – britoman
實際上你也保留了'page2'和'page3'的按鈕id,它不會工作,因爲元素id在一個html文件或DOM樹中應該是唯一的。 – dhaval
當你移動到頁面刷新的下一頁時,'data-rel = back'將不起作用,'data-ajax = false'只是這樣做的。 – dhaval