html5iOS开发亮宝😄

iOS和安卓使用同一个二维码实现跳转下载链接

2016-09-23  本文已影响4443人  BOC

最近公司的产品需求,希望iOS和安卓使用一个二维码,让扫描的机器自己识别操作系统实现跳转到相应的下载链接。比如iPhone用微信进行扫描就让他跳转appStore的下载页面,安卓机器使用微信扫描就直接跳浏览器下载。但是这二维码还有一个需求就是,用户已经下载了这个app,当用户打开app进入到注册页面时,再次扫描这个二维码时,自动填写邀请码进行注册。那么该如何实现,当中走了不少弯路,为此研发部也开了几次会,细节就不说了,直接上代码。

("更新后实测是可行的,之前可能有些朋友误会了下面的代码的使用场景。")


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <script>

    /**
        出来的链接大概是长这样的
        http://xxxx.cn/243423.html?c=Q23DR32
    */

    // c=Q23DR32是注册时扫描获取的邀请码。
    // 这样加参数,后面的参数会被自动忽略,不会影响加载此网页


        toDownload(); 
        // 新的方法
        function toDownload(){ 
            var u = navigator.userAgent;
            var ua = u.toLowerCase();   
            if (/iphone|ipad|ipod/.test(ua)) {  // iOS 系统 ->  跳AppStore下载地址
                //alert("iOS"); 
                window.location.href = 'https://itunes.apple.com/cn/app/xxxxxxx/id1124348115?mt=8';
            } else if ( /android/.test(ua)) { // 安卓系统 -> 跳安卓端下载地址
                window.location.href = 'http://xxxxxxx.cn/release/xxxx-release.apk';
                //alert("android"); 
            } else if (IsPC()){ // PC端

            }
        }


        //  修改前的代码
        /*
        function goDownload() {
            var u = navigator.userAgent, app = navigator.appVersion;
            var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
            var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
            // 是安卓浏览器
            if (isAndroid) {
                window.location.href = 'http://xxxxxxx.cn/release/xxxx-release.apk'; // 跳安卓端下载地址
            }
            // 是iOS浏览器
            if (isIOS) {
                window.location.href = 'https://itunes.apple.com/cn/app/xxxxxxx/id1124348115?mt=8'; // 跳AppStore下载地址
            }

            // 是微信内部webView
            if (is_weixn()) {
                alert("请点击右上角按钮, 点击使用浏览器打开");
            }

            // 是PC端
            if (IsPC()) {
                window.location.href = 'http://www.xxxxxxx.cn/index.html';  // 公司主页
            }
        }
        // 是微信浏览器
        function is_weixn(){
            var ua = navigator.userAgent.toLowerCase();
            if(ua.match(/MicroMessenger/i)=="micromessenger") {
                return true;
            } else {
                return false;
            }
        }
       */

        function IsPC() {
            var userAgentInfo = navigator.userAgent;
            var Agents = ["Android", "iPhone",
                "SymbianOS", "Windows Phone",
                "iPad", "iPod"];
            var flag = true;
            for (var v = 0; v < Agents.length; v++) {
                if (userAgentInfo.indexOf(Agents[v]) > 0) {
                    flag = false;
                    break;
                }
            }
            return flag;
        }

    </script>
</body>
</html>

上一篇下一篇

猜你喜欢

热点阅读