您的位置:1010cc时时彩经典版 > 1010cc时时彩客户端 > 1010cc时时彩经典版判断手机是否安装app,JS检测

1010cc时时彩经典版判断手机是否安装app,JS检测

发布时间:2019-12-01 16:09编辑:1010cc时时彩客户端浏览(98)

    注意点:
    • 微链接是应用宝提供的,能够在后台获取。
    • 应用微链接必须做encodeURIComponent转义。
    • 链接地址在微链接后拼接三个android_schema参数加你的uri。

      var ifr = document.createElement("iframe");

    (function() {
    var openUrl = window.location.search;
    try{
    openUrl = openUrl.substring(1,openUrl.length);
    }catch(e){

    window.location = "intent://[host]/" "url=" openUrl "#Intent;scheme=[scheme];package=[package_name];end";

    JS检查实验应用程式是或不是安装的情事

    JS检查测量试验应用软件是不是安装的气象 大家在浏览网页的时候,你会看见叁个网页下边漂浮着五个提醒框“打开应用程式”大概“下载APP的字样”,假若你的手提式有线电话机早就设置过那些APP,那么网页会唤起“张开应用软件”,若无安装,这就能提醒“下载APP的字样” 那个从技能角度是什么去贯彻的吗?上边笔者给我们享用那块技能,二〇一八年公司给国际动画节做项指标时候,顾客就事关那些必要,在点击网页公司的时候 那么直接展开应用软件(假使已经设置了) 若无设置过,间接展开应用程式页面
    上面小编把那块的源码分享一下 if (navigator.userAgent.match(/android/i卡塔尔(英语:State of Qatar)卡塔尔{
    // 通过iframe的措施计算展开应用程式,倘诺能健康张开,会平昔切换来应用软件,并自行阻止a标签的默认行为
    // 不然展开a标签的href链接
    var isInstalled; //上面是安卓端应用程式接口调用之处,自身依照意况去修正
    var ifrSrc = 'cartooncomicsshowtwo://platformapi/startApp? type=0&id=${com.id}&phone_num=${com.phone_num}';
    var ifr = document.createElement('iframe');
    ifr.src = ifrSrc;
    ifr.style.display = 'none';
    ifr.onload = function() {
    // alert('Is installed.');
    isInstalled = true;
    alert(isInstalled);
    document.getElementById('openApp0').click();

    };
    ifr.onerror = function() {
    // alert('May be not installed.');
    isInstalled = false;
    alert(isInstalled);
    }
    document.body.appendChild(ifr);
    setTimeout(function() {
    document.body.removeChild(ifr);
    },1000);
    }

    //ios判断 if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
    if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
    //Animation://com.yz.animation
    var isInstalled;
    //var gz = '{comName:${com.short_name},comID:${com.id},comPhoneNum:${com.phone_num},type:0}';
    //var jsongz =JSON.parse(gz卡塔尔国; //上边是IOS调用的地址,本身遵照事态去校勘
    var ifrSrc = 'Animation://?comName=${com.short_name}&comID=${com.id}&comPhoneNum=${com.phone_num}&type=0';

    var ifr = document.createElement('iframe');
    ifr.src = ifrSrc;
    ifr.style.display = 'none';
    ifr.onload = function() {
    // alert('Is installed.');
    isInstalled = true;
    alert(isInstalled);
    document.getElementById('openApp1').click();

    };
    ifr.onerror = function() {
    // alert('May be not installed.');
    isInstalled = false;
    alert(isInstalled);
    }
    document.body.appendChild(ifr);
    setTimeout(function() {
    document.body.removeChild(ifr);
    },1000);
    }
    }  

    JS检查评定APP是还是不是安装的景观大家在浏览网页的时候,你拜见到叁个网页上边漂浮着三个提拔框打开应用程式或然下载应用程式的字...

    uri获取

    此地的uri,指得正是通过 Url scheme 来得以达成的H5与安卓、苹果接收之间的跳转链接。

    我们要求找到顾客端的同事,来拿到如下格式的链接。

    xx://'跳转页面'/'指导参数'

    1
    xx://'跳转页面'/'携带参数'

    此地给大家轻便解释下url scheme。

    url 就是大家平日领会的链接。
    scheme 是指url链接中的最先地点,正是上边链接中 ‘xx’的职分。
    详细介绍能够看这里:使用url scheme详解

    用那几个链接大家得以跳转到 应用中的某些页面,并能够指导一定的参数。这些是大家落到实处那个意义的前提哟。

    </script>

    代码功用:
    推断手机/平板是或不是安装app
    假若设置 则调用app的scheme,传入url充当参数,来做继续操作
    假如未有设置 则跳转到app store/google play 下载app

    }else if(isAndroid){

    注意:
    • 是因为安卓手提式有线话机,页面步入后台,停车计时器set提姆eout仍会一再运转,所以这里运用setInterval,超小间距时间重复多次。来依据累积时间判别。
    • cb为回调函数,依据重临0 or 1来剖断是还是不是安装。
    • document.hidden对超越4.4webview协理很好,为页面可以预知性api。

    var isAndroid = u.indexOf('Android'卡塔尔 > -1 || u.indexOf('Linux'卡塔尔国 > -1; //android终端只怕uc浏览器

    复制代码 代码如下:

    }catch(e){

    其次步: 判定是或不是安装某利用

    规律:若通过url scheme 展开app成功,那么当前h5会步入后台,通过坚持计时器会有简单来说延迟。利用时间来剖断。

    //检查app是不是张开 function checkOpen(cb卡塔尔国{ var _clickTime = (new Date(卡塔尔国卡塔尔(英语:State of Qatar); function check(elsTime卡塔尔(قطر‎ { if ( els提姆e > 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); }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        //检查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);
        }

     if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {

    }
    var isiOS = navigator.userAgent.match('iPad')
    || navigator.userAgent.match('iPhone')
    || navigator.userAgent.match('iPod'), isAndroid = navigator.userAgent
    .match('Android'),isDesktop = !isiOS&&!isAndroid;
    if (isiOS) {
    setTimeout(function () { window.location = "itms-apps://itunes.apple.com/app/[name]/[id]?mt=8"; },25);
    window.location = "[scheme]://[host]?url=" openUrl;
    }else if(isAndroid){
    window.location = "intent://[host]/" "url=" openUrl "#Intent;scheme=[scheme];package=[package_name];end";
    }else{
    window.location.href = openUrl;
    }
    })();

    window.location.href = openUrl;

    回调函数的利用

    页面中得以经过传递回调函数,来获取重回值;并透过是不是传那几个参数来做踏入页面检查测量试验。

    1 赞 6 收藏 2 评论

    1010cc时时彩经典版 1

        } else {

    : 判别手提式有线话机/平板是不是安装app 要是设置 则调用app的scheme,传入url当做参数,来做继续操作 若无设置 则跳转到app store/google pla...

     

    其三步:Wechat中达成展开or下载应用效果与利益

    此处运用的是应用宝微链接实现。

    if (callback卡塔尔(قطر‎ { //客户端检查实验Wechat直接跳应用宝链接 var browser = BrowserInfo(卡塔尔; //使用微链接 var encodeUri = encodeUOdysseyIComponent('你的uri'卡塔尔国; if (browser.isWeixin卡塔尔(英语:State of Qatar) { window.location.href = '你的微链url&android_schema=' encodeUri; }else{ checkOpen(function(opened){ callback && callback(opened); }); } }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if (callback) {
          //客户端检测微信直接跳应用宝链接
          var browser = BrowserInfo();
          //使用微链接
          var encodeUri = encodeURIComponent('你的uri');
     
          if (browser.isWeixin) {
            window.location.href = '你的微链url&android_schema=' encodeUri;
          
          }else{
            checkOpen(function(opened){
                callback && callback(opened);
            });
        
          }
        }

    apps custom url schemes 是怎么样吧? 实则正是您与应用程式约定的二个协商U福特ExplorerL,你的IOS同事或Android同事在写程序的时候会设置一个UPAJEROL Scheme,
    比如说设置:
    URL Scheme :app
    接下来其它的次第就足以经过U锐界LString = app://  调用该利用。
    仍是可以够传参数,如:
    app://reaction/?uid=1
    原理:
    500ms内,本机有应用程序能深入分析这几个公约并开辟程序,调用该使用;假使本机未有应用程序能解析该契约可能500ms内并未有展开那些程序,则进行setTimeout里面包车型大巴function,正是跳转到你想跳转的页面。

    }

    其他

    二:安卓设备:原理:决断是还是不是认知这么些左券,认知则直接跳转,不认得就在此边下载app

    代码功用:

    第一步:通过iframe打开App

    Android平台则相继app厂家差距非常大,比如Chrome从25及随后就不再扶助通过js触发(非客户点击),所以那边运用iframe src地址等来触发scheme。

    //在iframe 中打开APP var ifr = document.createElement('iframe'); ifr.src = openUrl; ifr.style.display = 'none';

    1
    2
    3
    4
        //在iframe 中打开APP
        var ifr = document.createElement('iframe');
        ifr.src = openUrl;
        ifr.style.display = 'none';

            window.location.href = "openwjtr://com.tyrbl.wjtr"; /***开采app的协商,有安卓同事提供***/

     那篇小说首要介绍了用来deeplink的js方法(推断手机是还是不是安装app卡塔尔(قطر‎,供给的爱人能够参考下

    完全函数

    export const openApp = function(openUrl, callback卡塔尔(英语:State of Qatar) { //检查app是或不是张开function checkOpen(cb卡塔尔(英语:State of Qatar){ var _clickTime = (new Date(卡塔尔卡塔尔国; function check(elsTime卡塔尔(قطر‎ { if ( elsTime > 3000 || document.hidden || document.webkitHidden卡塔尔国 { cb(1卡塔尔(英语:State of Qatar); } 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卡塔尔(英语:State of Qatar); check(elsTime卡塔尔(قطر‎; } }, 20卡塔尔(英语:State of Qatar); } //在iframe 中展开应用程式 var ifr = document.createElement('iframe'卡塔尔(英语:State of Qatar); ifr.src = openUrl; ifr.style.display = 'none'; if (callback卡塔尔(قطر‎ { //客商端检查评定微信直接跳应用宝链接 var browser = BrowserInfo(卡塔尔国; //使用微链接 var encodeUri = encodeU奥迪Q5IComponent(openUrl卡塔尔; if (browser.isWeixin卡塔尔(英语:State of Qatar) { window.location.href = '你的微链url&android_schema=' encodeUri; }else{ checkOpen(function(opened){ callback && callback(opened); }); } } document.body.appendChild(ifr); setTimeout(function() { document.body.removeChild(ifr); }, 2000); }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    export const openApp = function(openUrl, callback) {
        //检查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) {
          //客户端检测微信直接跳应用宝链接
          var browser = BrowserInfo();
          //使用微链接
          var encodeUri = encodeURIComponent(openUrl);
     
          if (browser.isWeixin) {
            window.location.href = '你的微链url&android_schema=' encodeUri;
          }else{
            checkOpen(function(opened){
                callback && callback(opened);
            });
        
          }
        }
        
        document.body.appendChild(ifr);      
        setTimeout(function() {
            document.body.removeChild(ifr);
        }, 2000);  
     
    }

            ifr.src = "openwjtr://com.tyrbl.wjtr"; /***开采app的磋商,有ios同事提供***/

    }else{

    H5页检查实验手机是不是安装app 相关流程

    2017/04/21 · HTML5 · 2 评论 · H5

    初藳出处: sunsmeill   

    近年合作社须要针对享受流程实行优化,个中一些正是前者H5检查实验是或不是安装使用,来扩丰富歧的判别(下载或直接跳转到app中)。原理很粗大略:创造一个iframe去打开uri。假若张开app成功网页步向后台,再切换回来时间会抢先2.5s。行使时间去检测。上边来看现实完成进程:

    第二种艺术:

    window.location = "[scheme]://[host]?url=" openUrl;

    你可能会境遇的标题

    • 哪些是uri,获取uri须要哪些扶助?
    • 安卓中利用切换来后台, 放大计时器仍会持续运维有啥化解方式?
    • Wechat中不补助第三方uri,下载应用。怎么消除来成功跳转到自个儿app。

    都会在文中找到答案。

    js代码:

    var isiOS = navigator.userAgent.match('iPad')

    函数中调用的BrowserInfo是一个简洁明了的顾客端质量评定。具体如下:

    /** * 客商端检查测验 */ export const BrowserInfo = function() { var json = { userAgent: navigator.userAgent.toLowerCase(), isAndroid: Boolean(navigator.userAgent.match(/android/ig)), isIphone: Boolean(navigator.userAgent.match(/iphone|ipod/ig)), isIpad: Boolean(navigator.userAgent.match(/ipad/ig)), isWeixin: Boolean(navigator.userAgent.match(/MicroMessenger/ig)), } return json; }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /**
    * 客户端检测
    */
    export const BrowserInfo = function() {
      var json = {
        userAgent: navigator.userAgent.toLowerCase(),
        isAndroid: Boolean(navigator.userAgent.match(/android/ig)),
        isIphone: Boolean(navigator.userAgent.match(/iphone|ipod/ig)),
        isIpad: Boolean(navigator.userAgent.match(/ipad/ig)),
        isWeixin: Boolean(navigator.userAgent.match(/MicroMessenger/ig)),
      }
      
      return json;
    }

     

    })(); 

    具体落成

        if (hasApp) {

    判别手提式有线电电话机/平板是不是安装app

        window.location = "要跳转的页面U凯雷德L";

     

    <script language="javascript">

    }

       window.location = "要跳转的页面U昂科雷L";

     代码如下:

    大器晚成:判别是这种设备

    代码作用: 剖断手提式有线电话机/平板是或不是安装app 假使设置 则调用...

      ifr.setAttribute('style', 'display:none');

    openUrl = openUrl.substring(1,openUrl.length);

    本文由1010cc时时彩经典版发布于1010cc时时彩客户端,转载请注明出处:1010cc时时彩经典版判断手机是否安装app,JS检测

    关键词: