js判断是否安装 已安装就打开(移动端本人亲测 不好用来打我)

<a href="javascript:openApp('helloWorld','安装包APK的链接')"></a>
function openApp(openUrl, callback) {
        //区分是否android和ios方法
        var u = navigator.userAgent, app = navigator.appVersion;
        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
        var isIos = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        if(isAndroid){
            openUrl = '调起android的链接?拼接参数(scheme链接找android端的同事要)'
        }else if(isIos){
            window.location.href = '调起ios端的链接?拼接参数(scheme链接找ios端的同事要)';
        }
        //检查app是否打开
        function checkOpen(cb){
            var _clickTime = +(new Date());
            function check(elsTime) {
                if ( elsTime > 3000 || document.hidden || document.webkitHidden) {
                    cb(1);
                } else {
                    cb(0);
                }
            }
            //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束
            var _count = 0, intHandle;
            intHandle = setInterval(function(){
                _count++;
                var elsTime = +(new Date()) - _clickTime;
                if (_count>=100 || elsTime > 3000 ) {
                    clearInterval(intHandle);
                    check(elsTime);
                }
            }, 20);
        }
        //在iframe 中打开APP
        var ifr = document.createElement('iframe');
        ifr.src = openUrl;
        ifr.style.display = 'none';
        if (callback) {
            checkOpen(function (opened) {//checkOpen中的cbk参数 = function (opened)
                if(opened == 0){
                    //用户没有安装app 可以请求下载地址并跳转 跳转方法:window.location.href 即可
                }else if(opened ==1){
                    //用户打开了app  用户有安装app 
                }
            });
            }
        document.body.appendChild(ifr);
        setTimeout(function() {
            document.body.removeChild(ifr);
        }, 3000);
    }

本人亲测 不好用来打我

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值