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 相关文章推荐
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
编写高性能的JavaScript 脚本的加载与执行
Apr 19 Javascript
JavaScript中window、doucment、body的解释
Aug 14 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
IntersectionObserver实现图片懒加载的示例
Sep 29 Javascript
基于webpack.config.js 参数详解
Mar 20 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
vant中的toast层级改变操作
Nov 04 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
图书管理程序(一)
2006/10/09 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python使用matplotlib绘制折线图教程
2017/02/08 Python
解决uWSGI的编码问题详解
2017/03/24 Python
对python中的argv和argc使用详解
2018/12/15 Python
python中的colorlog库使用详解
2019/07/05 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
Pycharm调试程序技巧小结
2020/08/08 Python
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
《狐假虎威》教学反思
2014/02/07 职场文书
优秀公益广告词大全
2014/03/19 职场文书
优秀会计求职信
2014/07/04 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
西柏坡观后感
2015/06/08 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript