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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
Bootstrap前端开发案例二
Jun 17 Javascript
JavaScript编写九九乘法表(两种任选)
Feb 04 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
浅谈Redux中间件的实践
Jul 27 Javascript
详解基于React.js和Node.js的SSR实现方案
Mar 21 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
js+canvas实现转盘效果(两个版本)
Sep 13 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
Terran兵种介绍
2020/03/14 星际争霸
php 微信开发获取用户信息如何实现
2016/12/13 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python连接字符串的方法小结
2015/07/13 Python
python中list列表的高级函数
2016/05/17 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
Python socket模块方法实现详解
2019/11/05 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
计算机专业自荐信
2013/10/14 职场文书
大学军训感言600字
2014/02/25 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
认真学习保证书
2015/02/26 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
Python 统计序列中元素的出现频度
2022/04/26 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers