在过去的几个小时里,我一直在努力解决应该是一个简单的问题。
我正在尝试利用 JQuery mobile 中的 backButton 功能来构建一个具有导航图标的站点。(我的理解是JQM只是调用window.history.back)
该网站在桌面浏览器和移动 Safari 中按预期完美运行。该站点在 Android WebView 中不起作用。(值得注意的是,实际的硬件“清除”按钮起作用并将用户带回一页,但 JQM 图标只是突出显示而无处可去。)
在某些时候,我说去他妈的,然后我自己打电话给 window.history.back ,但这在电话上没有任何作用。
这是软件:
- jQuery Mobile 1.1.0
- 科尔多瓦/PhoneGap 1.9.0
- 安卓 2.2
我查看了一些已经提出的问题,但没有一个提供在 Android 上的 1.1.0/1.9.0 组合中似乎有效的解决方案。我也试过 Cordova 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>
更新
有关前向导航模型的一些示例,请参阅此 Gist。注意data-ajax="false"
转到第 4 页。
更新 2
更新了要点,包括对navigator.app.backHistory()
“Cordova Back”的调用。这可以在物理页面之间来回切换,但不符合 JQM 页面 DOM 模型。关于如何统一两者的任何想法?
https://gist.github.com/3039722
我不希望修改核心 Cordova.js 代码,而是在应用程序中添加一些监听器来处理这个问题。有任何想法吗?
谢谢