最近做了一版微信宣传页,通过JQ来判断设备,并进行下载

微信内置浏览器对下载链接进行了屏蔽,所以先进行判断,如果是微信内置浏览器,则跳转应用宝链接,如果不是,则判断是iPhone/Adroid/PC 并进行跳转

代码如下:

function downloadApp(){
var u = navigator.userAgent;
var ua = navigator.userAgent.toLowerCase();
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if(ua.match(/MicroMessenger/i)=="micromessenger") { //微信内置浏览器
$(".download a").click(function(){
window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名 '
});
}else{
if(isiOS){ $(".download a").click(function(){
window.location.href='https://itunes.apple.com/cn/app/应用名'
});
}else if(isAndroid){
$(".download a").click(function(){
window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名'
});
}else{
$(".download a").click(function(){
window.location.href='应用链接'
});
}
} }

测试发现,<a>标签里竟然出现了 需要点击二次才能跳转的情况,所以进行完善,而且发现已经在时间上绑定了click事件 还包在函数里 好像有点多此一举。。

$(function(){
var u = navigator.userAgent;
var ua = navigator.userAgent.toLowerCase();
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if(ua.match(/MicroMessenger/i)=="micromessenger") { //微信内置浏览器+应用宝链接
$(".download a").bind('touchstart', function (event) {
window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名 '
});
}else{
if(isiOS){
$(".download a").bind('touchstart', function (event) {
window.location.href='https://itunes.apple.com/cn/app/应用名' });
}else if(isAndroid){
$(".download a").bind('touchstart', function (event) {
window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名' });
}else{ //PC 端
$(".download a").click(function(){
window.location.href='应用链接'
});
} } });

  

JQ实现判断iPhone、Android设备的更多相关文章

  1. 判断iPhone/android手机

    JS判断请求来自Android手机还是iPhone手机,根据不同的手机跳转到不同的链接. var browser = {versions: function () {var u = navigator ...

  2. javascript判断iphone/android手机横竖屏模式的函数

    function orientationChange(){ switch(window.orientation) { case 0: // Portrait case 180: // Upside-d ...

  3. PHP判断iPhone、iPad、Android、PC设备的方法

    因为工作需要我们需要知道是什么样了用户访问了我网站了,现在的移动设备种类多了,下面我们一起来看小编整理的一段php判断iPhone.iPad.Android.PC设备的例子. 注意:本代码的PC系统为 ...

  4. 判断访问浏览器客户端类型(pc,mac,ipad,iphone,android)

    <script type="text/javascript"> //平台.设备和操作系统 var system = { win: false, mac: false, ...

  5. Android判断当前的android设备是否处于联网状态

    首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private ConnectivityManager connectivityManager;//用 ...

  6. 判断iPhone和iPad 判断设备版本

    //判断iPhone和iPad #define IS_IPHONE (!IS_IPAD) #define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInt ...

  7. Android设备唯一性判断

    前段时间项目需要一个功能,就是在操作完某一个逻辑之后返回给客户一个红包,安全校验团队需要我们提供android设备的唯一标示,起初直接通过获取设备的imei号传给了server端,后台公司云迹监控发现 ...

  8. 稳定获取Android设备唯一码(UUID)的解决方案

    最近做的一个项目中需要用到Android设备唯一码(UUID)来标识一台设备, Android中设备唯一码有很多,如:MAC地址.IMEI号(DeviceId).IMSI号.ANDROID_ID.序列 ...

  9. C# 判断是否移动设备

    /// <summary> /// 判断是否移动设备. /// </summary> /// <returns></returns> public st ...

随机推荐

  1. C#中一些常用的加密和哈希处理

    URL编码,默认UTF8编码方式 /// <summary> /// URL编码,默认UTF8编码方式 /// </summary> /// <param name=&q ...

  2. 利用Netty构建自定义协议的通信

    在复杂的网络世界中,各种应用之间通信需要依赖各种各样的协议,比如:HTTP,Telnet,FTP,SMTP等等. 在开发过程中,有时候我们需要构建一些适应自己业务的应用层协议,Netty作为一个非常优 ...

  3. 小丁带你走进git世界五-远程仓库

    一.文件,指令讲解 首先讲一下远程仓库和本地仓库在文件上面的区别,首先我们来看下对比图(当然这里说的区别是在于.git文件下面的文件内容,至于里面内容我们不会关注)這裡我们进行了相同的操作就是本地仓库 ...

  4. CSS3 滤镜

    了解摄影活着美图秀秀之类美图软件的同学对滤镜肯定不陌生,CSS3对各种滤镜效果有了支持,可以做出很多好玩儿效果,走马观花了解一下 语法 filter: function(param); 很很多CSS3 ...

  5. 学习python

    最近感觉Python 很不错的样子,乘着这次寒假,不如就先学一下吧. 翻看了一些教程,发现<python 简明教程>质量上乘. 我目前学习python就是打算做一些上位机之类的,好像有点杀 ...

  6. AKKA 笔记 - 有限状态机 -2

    AKKA 笔记 - 有限状态机 -2 原文地址: http://rerun.me/2016/05/22/akka-notes-finite-state-machines-2/ 在上一节的Akka FS ...

  7. 从scheduler is shutted down看程序员的英文水平

    我有个windows服务程序,今天重点在测试系统逻辑.部署后,在看系统日志时,不经意看到一行:scheduler is shutted down. 2016-12-29 09:40:24.175 {& ...

  8. Android开发-之监听button点击事件

    一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加X ...

  9. VS 2015相当不错的功能:C#交互窗口

    按照惯例,老周是先吹牛后讲正事.今天就给大伙吹吹这个事. 有网友不知道是不是昨晚喝高了,居然研究起老周来了.实话告诉你,老周没什么好研究的,老周又不是编译器,老周只是一个游离于大善大恶之间的平凡人,说 ...

  10. 初始Bootstrap

    使用示例 ①下载Bootstrap框架 网址:http://v3.bootcss.com/getting-started/#download ②解压得到三个文件     ③将文件添加进项目后,在页面中 ...