遇上了这个问题的时候,发现腾讯已经把直接跳转给禁止了。我很赞成,保护用户的安全。
解决方案有两个:
第一:使用微信的应用宝的微下载。强烈推荐这条方案,除非你是腾讯的竞争对手,否则就乖乖注册腾讯开放平台,然后注册你的app到应用宝吧
第二:在h5页面中提示,让用户点右上角的按钮,然后点击跳转到Safari,然后在Safari中打开
第二种方案要考虑到是safari还是微信的环境。以下是我的javascript代码
<script>
function showMessage(){
if(isWeiXin()){
document.getElementById('redirection').style.display="block";
var h = document.getElementById('redirection').offsetHeight;
document.getElementById('mainContent').style.top=h+'px';
}else{
<!-- 这里填下载地址 -->
window.location.href="http://itunes.apple.com/us/app/id399608199";
}
}
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
</script>
redirection这个id下的元素是一开始display=none的提示文字
当下载的按钮被点击,就会判断是否在微信环境中,如果在微信中,就显示出redirection的div。然后根据这块div的高度,把整体内容(mainContent)的起始位置下移
redirection div的高度因为是自适应,所以要用offsetHeight来动态计算。