爱程序网

iOS 7.0.2 的bug记录

来源: 阅读:

在iOS 7.0.2 版本上,如果从主屏幕进入webapp且webapp进入全屏模式,那么alert和修改window.location到某产品对应的itunes下载页面则无效。

可参考下面的代码示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title>Untitled</title>
<style>
body {font-family:sans-serif;}
</style>
</head>
<body>
Press the following button to jump! Are you ready?
<input type="button" onclick="jumpToITunes()" value="jump to!" />
<a href="#" onclick="jumpToITunes()">click me to jump</a>
<span id="test"></span>
<script>

var jumpToITunes = function(){
    document.getElementById('test').innerHTML = (new Date).getTime();
    alert(1);
    window.location="https://itunes.apple.com/us/app/google-search/id284815942?mt=8";
};

</script>
</body>
</html>

无论点击按钮还是a标签,都会执行函数jumpToITunes。我们在Safari打开此页面并保存到主屏幕。再从主屏幕进入这个页面。点击按钮,发现alert和修改location的行为都是无效的。如果去掉全屏的那句meta标签则没有问题。另外在iOS最新版本7.0.3中,这个问题也没有了。

针对这个问题可以考虑两种解决方案:

  1. 在7.0.2系统中禁止使用全屏模式。
  2. 在7.0.2系统中当从主屏幕进入webapp则不提供下载链接。

以上两种策略可以根据产品需求而定。

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助