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的插件教程(Plugin)
Sep 03 Javascript
原生js 秒表实现代码
Jul 24 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
浅谈JavaScript 浏览器对象
Jun 03 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
Bootstrap table 服务器端分页功能实现方法示例
Jun 01 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
微信小程序实现文件预览
Oct 22 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 读取文件乱码问题
2010/02/20 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
JS 自动安装exe程序
2008/11/30 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
js 省地市级联选择
2010/02/07 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
Delphi CS笔试题
2014/01/04 面试题
给老婆大人的检讨书
2014/02/24 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
店铺转让协议书
2015/01/29 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server