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

前端之家收集整理的这篇文章主要介绍了在IOS9中的Cordova应用程序使用JQuery / Javascript的window.history问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@我在 IOS9(测试版)下的Cordova应用程序遇到麻烦.我正在使用最新的Cordova和 JQuery移动版本. window.history没有得到更新,导致以下故障:

> window.history.go(-1)无法返回页面
> window.history.length被困在1,即使你浏览三页深
> jQuery中标记链接data-rel =“back”按下时不能返回

我将以下示例代码放在一起,作为独立的Cordova应用程序在IOS9(测试版)下运行时失败,但如果您从IOS9(测试版)浏览器(以下链接)运行它,则可正常工作.事实上,它从移动浏览器运行而不是应用程序,导致我相信它可能是科尔多瓦的一个问题.

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

示例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>

猜你在找的iOS相关文章