我正在处理一个应用程序。在我上周开始后,我添加了几页。今天我试图实现后退按钮,但是我失去了理智......现在我试着让它工作了四个小时但我无法做到,因为iOS 9中有一些奇怪的行为。
所以我的硬件设置可以更好地理解:
我的应用程序设置以便更好地理解:
所以我想通过jQuery在我的应用程序中实现一个后退按钮。 Normaly的方式是添加href
,其中包含data-rel="back"
和data-transition="reverse"
等属性。所以我的代码看起来像这样:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.structure-1.4.5.min.css">
<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<title>Hello World</title>
</head>
<body>
<div data-role="page" id="page1">
This is page 1<br />
<br />
<a href="#page2" data-transition="slide">
Go to page 2
</a>
</div>
<div data-role="page" id="page2">
This is page 2<br />
<br />
<a href="#" data-rel="back" data-transition="reverse">
Go back to page 1
</a>
</div>
</body>
</html>
后退按钮在iOS 9和iOS 9.0.1中无效。在iOS 8.3中一切正常。那么这个问题有什么已知的吗?有人听说过吗?或者我完全错了,做错了什么?由于我无法在Android上测试它,如果有人能做到这一点会很棒。
http://codepen.io/anon/pen/vNyrgB
立即等待您的反馈...提前致谢!
答案 0 :(得分:6)
目前存在许多问题,但如果是关于后退按钮导航和页面闪烁,则修复很简单:
$.mobile.hashListeningEnabled=false;
将其置于您的设备就绪事件中。
考虑到这会破坏Android后退按钮,所以当你的应用也应该在Android上运行时,你实际上应该只有条件地应用它。类似的东西:
if ( device.platform === "iOS" ) {
$.mobile.hashListeningEnabled=false;
}
答案 1 :(得分:4)
@Sithys,
1)iOS9在很多地方都被打破了。 2)此外,周末 Phonegap Build 对默认版本进行了未经宣布的升级。
这是你需要知道的,但还有更多,我没有。
截至2015年11月2日,Cordova
支持iOS 9 Apache Cordova iOS 3.9.2
http://cordova.apache.org/announcements/2015/11/02/cordova-ios-3-9-2.html
## 1.不支持iOS9 YET! ##
PhoneGap构建iOS 9支持状态
秒>此时,向Cordova Bug存储库报告了4个错误。您的问题不会出现在资源库中 - 截至此日期。
1个错误 - https://openradar.appspot.com/22186109
无论你使用什么,正如论坛帖子所述,直到Cordova-iOS 4.0.0,iOS 9才得到官方支持。这意味着,创建一个解决方案,或等到它得到官方支持。或者用cordova提交错误报告。或者等到其他人创建一个解决方案。
有时候,Phonegap会在论坛而不是博客上发布公告
更多信息:(Official) Messages from Phonegap Build Technical Support in the Forum
来自 Phonegap Build 论坛,Petra Adds:
我想补充一点:没有公告,PGB将默认PGB版本从3.7.0更改为cli-5.2.0。这导致所有未在config.xml中设置'phonegap-version'的人面临突然需要的泼水屏幕和白名单插件以及配置和HTML中的其他白名单规范。
此外,几个插件似乎无法使用cli-5.2.0正确构建,导致关于“Class ***。java”的日志文件错误消息。
FWIW: Phonegap Build admitted to as much in this tweet
来自Top Mistakes by Developers new to Cordova/Phonegap你已经点击了:
对于#6&amp; #7
使用CLI版本,如果您没有为您的平台分配版本,或者如果您未在config.xml中设置phonegap-version,则在“Phonegap Build”中,您将获得最新版本。如果运气好,您的程序就会按预期运行。如果你不幸运,你会得到一组级联错误。
幸运的是,对于我们所有人来说,Holly Schinsky写了一篇很好的博文来解释这一切:
Cordova / PhoneGap版本混淆
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
#10
这个相对*新*要求意味着 - 要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用cordova-android@4.0.0或更高版本,此要求将生效;包括cli-5.1.1。但是,如果您的版本在4.0.0之前,请使用3.5.0或3.7.0,那么不必须添加 white-list 要求。< / p>
要明确的是,“白名单”已经存在了一段时间,但插件和要求非常新。正如您所料,当添加“白名单”时,不推荐使用事实上的开放访问功能。或者说另一种方式,事实上开放访问功能已被计划并计划被淘汰。此更改标志着删除开放访问功能的一个步骤。
此外,内容安全策略(CSP)已经吸引了众多开发人员 - 因为它的公开性很差。这个CSP需要进入您使用的每个HTML页面,就像您必须等待'deviceready'一样。该文档隐藏在许多最新文档页面的底部。
相关链接
Phonegap Build Forum:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单