在IOS9的Cordova应用上使用jQuery / Javascript的window.history问题

IOS9(testing版)下的Cordova应用程序遇到问题。 我正在使用最新的Cordova和JQuery移动版本。 window.history没有得到更新,这是导致以下故障:

  • window.history.go(-1)无法返回页面
  • 即使您浏览了三页深度,window.history.length仍为1
  • 在jQuery中标记为data-rel =“back”的链接在按下时无法返回

我已经把下面的示例代码放在一起,这个示例代码在IOS9(beta)下作为单独的Cordova应用程序运行时失败,但是如果从IOS9(testing版)浏览器(下面的链接)运行它,则工作正常。 事实上,它从移动浏览器运行,而不是作为一个应用程序导致我相信这可能是一个cordova问题。

在样本中 – 有三页。 从主页 – >选项 – > HopOpts导航,然后点击取消button应该带我们回页面,但不在cordova应用程序。 我已经单独尝试将一个button处理程序附加到该button,并确认window.history深度为1(应为3),并且window.history.go(-1)无法移回。

示例HTML文件在这里: http : //home.jejaju.com/BeerSmith2.html

要在Cordova下运行它作为应用程序,您需要删除顶部附近的“Cordova.js”行附近的注释块。 正如我上面指出的那样,它可以在浏览器中正常工作,即使在IOS9浏览器中,取消button也不会作为独立的cordova应用程序出现。

所以问题是没有人有线索为什么window.history不更新和反向链接不能正常工作这个简单的cordova应用程序和IOS9(testing版)? 在两个testing案例中唯一改变的是Cordova.js。

我看到这是几个星期前,但我会张贴,以防其他人遇到它。 这听起来像是它可能与由iOS 9中的哈希更改生成的导航事件有关。如果是这样,您可以将其添加到您的index.html以禁用哈希监听:

(需要在这里显示的jquery.js和jquery.mobile-1.4.5.js之间)

<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script> <script type="text/javascript"> $(document).bind("mobileinit", function(){ $.mobile.hashListeningEnabled = false; }); </script> <script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.4.5.js"></script>