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则不提供下载链接。

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

你可能感兴趣的:(ios)