JS判断android ios系统 PC端和移动端
最近公司上线移动端,需要根据不同的系统跳转到不同的产品页面,百度后发现这一段代码很好用,不但可以判断当前是什么系统,还能知道当前浏览器是什么内核,移动端PC端都已测试无问题!
var browser = {
versions: function() {
var u = navigator.userAgent,app = navigator.appVersion;
return { //移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !! u.match(/AppleWebKit.*Mobile.*/) || !! u.match(/AppleWebKit/), //是否为移动终端
ios: !! u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
window.location.href = "http://www.baidu.com";//想要跳转的地址
} else if (browser.versions.android) {
window.location.href = "http://www.hao123.com";//想要跳转的地址
}
还有另一种简单写法,对于简单只需要判断是什么系统的可以试试下面的这种方法
if (/android/i.test(navigator.userAgent)) {
window.location.href = "http://www.hao123.com";//想要跳转的地址
}
if (/ipad|iphone|mac/i.test(navigator.userAgent)) {
window.location.href = "http://www.baidu.com";//想要跳转的地址
}
如果还工区分当前系统是移动端和PC端则需要用下面的方法,第一种方式有一个mobile 可以区分PC端跟移动端,但是在mac上面不起作用,会判断成移动端,所以得用下面的笨方法,判断目前主流的移动手持设备来区分移动跟PC端
<img src="jcwy.png" alt="" class="tips" id="tipsid"/>
var nowclass=browserRedirect(); if(nowclass.bIsIpad||nowclass.bIsIphoneOs||nowclass.bIsMidp||nowclass.bIsUc7||nowclass.bIsUc||nowclass.bIsAndroid||nowclass.bIsCE||nowclass.bIsWM){
if(nowclass.bIsIphoneOs||nowclass.bIsIpad||nowclass.bIsMidp){//如果是ios移动设备
window.location.href = "ios需要跳转的地方";
if(nowclass.bIsWX){//解决以微信内核浏览器打开无法直接跳转给出提示点击跳转至safari打开
document.getElementById("tipsid").style.display="block";
}
}
else if(nowclass.bIsAndroid){//如果是android移动设备
window.location.href = "android需要跳转的地方";
}
}
else{
window.location.href = "PC端跳转去的地方";
}
function browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var systemclass={};
systemclass.bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
systemclass.bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
systemclass.bIsMidp = sUserAgent.match(/midp/i) == "midp";
systemclass.bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
systemclass.bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
systemclass.bIsAndroid = sUserAgent.match(/android/i) == "android";
systemclass.bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
systemclass.bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
systemclass.bIsWX=sUserAgent.match(/MicroMessenger/i)=="micromessenger";
return systemclass;
}
JS判断android ios系统 PC端和移动端的更多相关文章
- h5 js判断是IOS系统还是android系统
function detect(){ var equipmentType = ""; var agent = navigator.userAgent.toLowerCase(); ...
- JS判断android/IOS,并执行回调函数
判断类型: var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') ...
- JS判断当前设备是 PC IOS Andriod
JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...
- JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器
JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...
- js判断用户是在PC端或移动端访问
js如何判断用户是在PC端和还是移动端访问. 最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的体验.伴随Android平台的红火发展.不仅带动国内智能手机行业,而 ...
- JS判断Android、iOS或浏览器的多种方法(四种方法)
第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端. 代码如下: <script type="text/javascript"> ...
- 如何使用js判断当前页面是pc还是移动端打开的
1.利用了正则表达式和三目运算符,含义就是如果是移动端打开的话那就跳转到 "https:www.baidu.com/" ,如果不是就跳转到"http://new.baid ...
- js判断当前浏览器是pc端还是移动端
根据用户的访问设备的不同来显示不同的页面样式,主要是判断移动设备还是电脑浏览器访问的. 下面给出js判断处理代码,以作参考. <script type="text/javascript ...
- js判断Android和Ios
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
随机推荐
- bzoj1055玩具取名——区间DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间DP,注意初始化!! 因为没记忆化,TLE了一晚上,区间DP尤其要注意不重复递归! ...
- 人工智能实践:TensorFlow 框架
张量.计算图.会话 基本概念 基于Tensorflow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型. 张量(Tensor):张量就是多维数组(列表) ...
- Ubuntu vim使用
vim安装:apt-get install vim-gtk vim使用:默认启动插入模式,或者按‘I’进入插入模式,退出插入模式按‘esc’,用冒号‘:wq’进行保存退出: 其复制和粘贴是靠鼠标右键中 ...
- Jasper:目录/资源
ylbtech-Jasper:目录/资源 1. 官网返回顶部 1. https://www.jasper.com/ 2. 2.返回顶部 1. http://api.jasperwireless.com ...
- Android应用如何反馈Crash报告
转自:http://www.cnblogs.com/draem0507/archive/2013/05/25/3099461.html 一.为什么要Crash crash可以理解成堕落,垮台.按照我们 ...
- __setup宏简介
内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下: __setup(string, fun ...
- 用expressjs写RESTful API
http://blog.csdn.net/kiwi_coder/article/details/36424671 用expressjs写RESTful API http://blog.csdn ...
- unix环境高级编程附录 B 通用代码
0.说明: 在测试 unix 环境高级编程中的代码时,需要一些作者事先写好的代码, 如: apue.h 包含某些标准系统头文件,定义许多常量及函数原型 还有两个作者自编的函数来对错误进行处理 1.ep ...
- utunbu下的codeblocks配置openGL环境
真想骂娘阿,刚开始用utunbu,什么也不明白,不明白我装都软件都在哪里,不知道就像windows下的系统文件那样的文件在哪里,也不知道如何配置环境变量.就这样稀里糊涂的,还要抓紧时间装openGL, ...
- 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...