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 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
vs2003 js文件编码问题的解决方法
Mar 20 Javascript
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
详解VUE调用本地json的使用方法
May 15 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
vue3中的组件间通信
Mar 31 Vue.js
微信小程序 实例应用(记账)详解
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实现paypal整合方法
2010/11/28 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Python中的日期时间处理详解
2016/11/17 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
自荐信如何“自荐”
2013/10/24 职场文书
教师考核评语
2014/04/28 职场文书
应届生求职自荐信
2014/07/04 职场文书
新农村建设汇报材料
2014/08/15 职场文书
2014年稽查工作总结
2014/12/20 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
python单元测试之pytest的使用
2021/06/07 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android