当前位置: 首页 > news >正文

h5 扫描二维码打开app和点击下载功能的实现

window.onload = function () {
   jumpToapp()
}
var browser = {
  isAndroid: function () {
    return navigator.userAgent.match(/Android/i) ? true : false;
  },
  isMobileQQ: function () {
    var ua = navigator.userAgent;
    return /(iPad|iPhone|iPod).*? (IPad)?QQ\/([\d\.]+)/.test(ua) ||
    /\bV1_AND_SQI?_([\d\.]+)(.*? QQ\/([\d\.]+))?/.test(ua);
},
  isIOS: function () {
    return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
},
  isWx: function () {
    return navigator.userAgent.match(/micromessenger/i) ? true : false;
},
  isChrome: function () {
    return navigator.userAgent.match(/chrome/i) ? true : false;
  }
};
var createIframe = (function () {
  var iframe;
  return function () {
      if (iframe) {
        return iframe;
      } else {
        iframe = document.createElement('iframe');
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
        return iframe;
      }
  }
})()

var jumpToapp = function () {
  var isAndroid = function () {
    return navigator.userAgent.match(/Android/i) ? true : false;
  }
  var isIOS = function () {
    return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
  }
if (isIOS()) {
  window.location.href = "sxz://sxz.com";//伪协议scheme
} else if (isAndroid()) {
  var ifr = document.createElement('iframe');
  ifr.src = "sxz://sxz.com";//伪协议scheme
  ifr.style.display = 'none';
  document.body.appendChild(ifr);
  }
 }
$('#open_app').click(function () {
  openApp();
})

var openApp = function () {
  if (browser.isIOS()) {
    window.location.href = "ios下载地址";
  } else if (browser.isAndroid()) {
    window.location.href = "安卓下载地址";
 }

 

 

相关文章:

  • 云时代重新定义主机安全:自动化安全闭环是核心
  • C#利用HttpWebRequest进行post请求的示例(HTTPS)
  • windows中结束线程的方式
  • mogodb
  • 22次课(yum更换国内源、yum下载rpm包、源码包安装、把源码包打包成rpm包)
  • mybatis 延迟加载
  • Python基础学习四 列表、元组、字典、集合
  • Mysql添加更新删除数据-表
  • 如何在本地测试Fabric Code
  • 状态码 301 与 302的区别
  • RHEL6 搭建LVS/DR 负载均衡集群 案例
  • “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数
  • Linux权限详解
  • Tomcat7 Redis Session共享
  • 练习题
  • @angular/forms 源码解析之双向绑定
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • android图片蒙层
  • Consul Config 使用Git做版本控制的实现
  • cookie和session
  • golang 发送GET和POST示例
  • JavaScript异步流程控制的前世今生
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux gpio口使用方法
  • MySQL QA
  • Otto开发初探——微服务依赖管理新利器
  • TypeScript迭代器
  • v-if和v-for连用出现的问题
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 大数据与云计算学习:数据分析(二)
  • 区块链共识机制优缺点对比都是什么
  • 如何进阶一名有竞争力的程序员?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 1.Ext JS 建立web开发工程
  • 整理一些计算机基础知识!
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (十六)Flask之蓝图
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (一)为什么要选择C++
  • (一一四)第九章编程练习
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)关于pipe()的详细解析
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .NET 8.0 发布到 IIS
  • .Net mvc总结
  • .Net Web项目创建比较不错的参考文章
  • .NET 依赖注入和配置系统
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET精简框架的“无法找到资源程序集”异常释疑