在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中,这个问题也没有了。
针对这个问题可以考虑两种解决方案:
以上两种策略可以根据产品需求而定。