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 有用的脚本函数
May 07 Javascript
js实现拖拽 闭包函数详细介绍
Nov 25 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
Dec 31 Javascript
响应式框架Bootstrap栅格系统的实例
Dec 19 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
element-ui 时间选择器限制范围的实现(随动)
Jan 09 Javascript
基于Fixed定位的框选功能的实现代码
May 13 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
Vue 使用typescript如何优雅的调用swagger API
Sep 01 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
php时间计算相关问题小结
2016/05/09 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
超级强大的表单验证
2006/06/26 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
深入探究node之Transform
2017/07/20 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
解决vue中的无限循环问题
2020/07/27 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
Python字符遍历的艺术
2008/09/06 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python制作exe文件简单流程
2019/01/24 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
交通安全教育制度
2014/02/02 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
优秀团队申报材料
2014/12/26 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
python实现简单的聊天小程序
2021/07/07 Python