iOS和Android用同一个二维码实现跳转下载链接的方法


Posted in Javascript onSeptember 28, 2016

前言

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

使用js实现,其实代码非常简单.

使用时直接拷贝代码,改掉相应的链接就好。

PS:该链接在微信环境打开时还是需要手动跳转到手机的浏览器才能跳到下载页面,因为微信内的webView比较特别,所以写了一个alert引导用户打开浏览器。

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

  <script>

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

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

    goDownload();

    // 去下载
    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>

总结

以上就是iOS和Android用同一个二维码实现跳转下载链接的方法,大家都学会了吗,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有更好的解决方案或可以通过代码判断微信客户端的系统环境的方法请留言交流。

Javascript 相关文章推荐
使用JQuery和s3captche实现一个水果名字的验证
Aug 14 Javascript
学习ExtJS Column布局
Oct 08 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
JavaScript中的普通函数与构造函数比较
Apr 07 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
Vue实现一个无限加载列表功能
Nov 13 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
简单了解vue.js数组的常用操作
Jun 17 Javascript
JavaScript如何利用Promise控制并发请求个数
May 14 Javascript
微信小程序 实例应用(记账)详解
Sep 28 #Javascript
JavaScript 闭包详细介绍
Sep 28 #Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
Sep 28 #Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 #Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 #Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 #Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
Sep 28 #Javascript
You might like
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
Javascript &amp; DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
JS之相等操作符详解
2016/09/13 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
使用Python监控文件内容变化代码实例
2018/06/04 Python
python实现括号匹配的思路详解
2018/08/23 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Numpy数组的广播机制的实现
2020/11/03 Python
硕士研究生个人求职信
2013/12/04 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
同学聚会主持词
2014/03/18 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2014年工商所工作总结
2014/12/09 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
在js中修改html body的样式
2021/11/11 Javascript
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL