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.AutoComplete.js中文修正版(支持firefox)
Apr 09 Javascript
js中有关IE版本检测
Jan 04 Javascript
AngularJS入门教程之Hello World!
Dec 06 Javascript
Jquery 实现图片轮换
Jan 28 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
JavaScript使用Math.random()生成简单的验证码
Jan 21 Javascript
Node.js学习教程之Module模块
Sep 03 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
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
Yii2中datetime类的使用
2016/12/17 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
js运动事件函数详解
2016/10/21 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
python模拟实现分发扑克牌
2020/04/22 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
运动会广播稿60字
2014/01/15 职场文书
求职导师推荐信范文
2015/03/27 职场文书
宾馆安全管理制度
2015/08/06 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP