美文网首页
浏览器中呼起APP

浏览器中呼起APP

作者: Peter520 | 来源:发表于2018-08-09 16:23 被阅读68次

    话不多说,先上代码

    <!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会弹出提示,无效的链接地址,这个有没有好的办法让它不出现?

    相关文章

      网友评论

          本文标题:浏览器中呼起APP

          本文链接:https://www.haomeiwen.com/subject/eblcbftx.html