在 IOS9 中的 Cordova 应用程序上使用 JQuery/Javascript 的 window.history 问题

2024-05-08

我在 IOS9(测试版)下使用 Cordova 应用程序时遇到问题。我正在使用最新的 Cordova 和 JQuery 移动版本。 window.history 未更新,导致以下故障:

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

我整理了以下示例代码,该代码在 IOS9(测试版)下作为单独的 Cordova 应用程序运行时会失败,但如果从 IOS9(测试版)浏览器运行它,则可以正常工作(下面的链接)。事实上,它是从移动浏览器运行而不是作为应用程序运行,这让我相信这可能是 Cordova 问题。

在示例中 - 有三页。从“主页”->“选项”->“HopOpts”导航,然后单击“取消”按钮应该会让我们返回一个页面,但在 cordova 应用程序中不会。我分别尝试将按钮处理程序附加到该按钮,并确认 window.history 的深度为 1(应该为 3),并且 window.history.go(-1) 无法向后移动。

示例 HTML 文件位于此处:http://home.jejaju.com/BeerSmith2.html http://home.jejaju.com/BeerSmith2.html

要将其作为应用程序在 Cordova 下运行,您需要删除顶部附近“Cordova.js”行周围的注释块。正如我上面指出的,它在浏览器中可以正常工作,即使在 IOS9 浏览器上也是如此,但取消按钮作为独立的 cordova 应用程序会失败。

所以问题是有人知道为什么 window.history 没有更新并且反向链接对于这个简单的 Cordova 应用程序和 IOS9(测试版)不能正常工作吗?两个测试用例中唯一改变的是 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 IOS9 中的 Cordova 应用程序上使用 JQuery/Javascript 的 window.history 问题 的相关文章

随机推荐