移动开发遇到的问题总结:关于浏览器打开链接自动跳转到app

1、判断手机浏览器类型

    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var s;
    
    (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
    (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
    (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    
    if (Sys.firefox) {
        alert('Firefox: ' + Sys.firefox);
    }else if(Sys.chrome) {
        alert('Chrome: ' + Sys.chrome);
    }else if(Sys.opera) {
        alert('Opera: ' + Sys.opera);
    }else if(Sys.safari) {
        alert('Safari: ' + Sys.safari);
    }else{
        alert(ua); //其他种类型的浏览器,就可以根据输出的ua里的信息用正则匹配来判断
    }

2、判断手机设备上是否有此app存在

它的原理就是利用iframe看是否能唤起app的一个链接,不过我用这种方式,发现它并不是很准确,像安卓自带的浏览器就不生效,chrome浏览器也不生效,iphone还是蛮好用的,uc浏览器也好用。

值得注意的是:微博浏览器不支持跳第三方app,这是微博限制的,如果还想跳,那只能做一个中间引导页,来告诉用户用其他浏览器打开,然后才能自动跳转到app。

    if($('#open_app').length!==0){
        $('#open_app').remove();
    }
    var ifr = document.createElement('iframe');
    ifr.id = 'open_app';
    ifr.src = app链接地址;
    ifr.style.display = 'none';
    document.body.appendChild(ifr);
    var now = new Date().valueOf();
    setTimeout(function () {
        if (new Date().valueOf() - now > (300+2)) {
            return;    //如果不存在则不做任何操作,留在当前页面
        }
        window.location.href = app链接地址; //如果存在app则跳转到指定app的页面
    }, 300);
``

你可能感兴趣的:(移动开发遇到的问题总结:关于浏览器打开链接自动跳转到app)