我在
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>