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框架的AJAX实例代码
Nov 03 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
AngularJS控制器之间的数据共享及通信详解
Aug 01 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
ES5学习教程之Array对象
Apr 01 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
Jun 14 Javascript
JavaScript函数定义方法实例详解
Mar 05 Javascript
详解vue 组件的实现原理
Nov 12 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
php中文件上传的安全问题
2006/10/09 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python高级用法总结
2018/05/26 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
pymongo中group by的操作方法教程
2019/03/22 Python
django admin组件使用方法详解
2019/07/19 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
python软件都是免费的吗
2020/06/18 Python
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
语文教学感言
2014/02/06 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
起诉书格式范文
2015/05/20 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
检举信的写法
2019/04/10 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js