浏览器中呼起APP

2018-08-09  本文已影响68人  Peter520

话不多说,先上代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>this's a demo</title>
    <meta name='apple-itunes-app' content='app-id=xxxx'>
</head>
<body>
    <a href="javascript:;" id="openApp">打开APP</a>
</body>
</html>
<script type="text/javascript">
    document.getElementById('openApp').onclick = function(e){
        e.preventDefault();
        
        if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
        {
            let loadDateTime = Date.now();
            window.setTimeout(function(){
                let timeOutDateTime = Date.now();
                if ((timeOutDateTime - loadDateTime) < 1000 ){
            window.location.href = "http://cxxxl";
                }
            },250);
            window.location.href = "weixin://";
        }
        else if(navigator.userAgent.match(/android/i))
        {
            window.location.href = "weixin://";
            window.setTimeout(function() {
                window.location.href = "http://xxxxx";
            }, 2000)    
        } else {
            window.location.href = "http://xxxx";
        }
    };
</script>

这个也是网上例子基础上的一点小改动,发现在safari上,偶尔会出现浏览器闪退的现象,没找到原因(不知道和HbuilderX的自动刷新有没有关联),如果你找到原因告知我,不甚感激。

网上比较多的一个说法是利用iframe来进行跳转,但是我实验发现iframe竟然失效了,上面代码实验是可行的。

上面的代码解决了打开app的问题,但是还不是特别完美,有几个问题暂时没找到简单而完美的解决:
1、在safari中是否可以不弹出Open in ”XXX“,而是直接打开APP的?
2、如果已安装并跳转之后,safari是否可以不执行timer跳转到下载页面?
3、当没有安装app时,safari会弹出提示,无效的链接地址,这个有没有好的办法让它不出现?

上一篇下一篇

猜你喜欢

热点阅读