开发过程中,判断设备挺常见的,但是老是记不太住,所以在这里做个笔记。
一、判断当前是否是移动端
funciton isMobile(){
let userAgent = navigator.userAgent
return /Android|iPhone|iPad|iPod|BlackBerry|webOS|Windows Phone|SymbianOS|IEMobile|Opera Mini/i.test(userAgent);
}
二、判断当前是否是安卓系统
function isAndroid(){
let userAgent = navigator.userAgent
return /Android|adr/gi.test(userAgent )
}
三、判断当前是否是iOS系统
function isIOS() {
let userAgent = navigator.userAgent
return /(iPhone|iPad|iPod|iOS)/i.test(userAgent)
}
四、判断当前处于什么环境(浏览器环境 | 设备终端),这个比较详细一点。
function browser(){
const userAgent= navigator.userAgent;
const appVersion = navigator.appVersion;
const version = {
isIos: !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios 终端
//isMobile: !!userAgent.macth(/(iPhone|iPod|iPad|Android|ios)/i), // 是否移动终端
isMobile: !!userAgent.match(/AppleWebKit.*Mobile.*/), // 是否移动终端
isAndroid: userAgent.indexOf('Android') > -1 || userAgent.indexOf('Linux') > -1, // android 终端端或者uc 浏览器
// isAndroid: !!appVersion.match(/android/gi),
isIphone: !!userAgent.indexOf('iPhone') > -1, // 是否为iPhone或则QQHD浏览器
// isIphone: !!appVersion.match(/iphone/gi);
iPad: userAgent.indexOf('iPad') > -1, // 是否是iPad
isWebApp: userAgent.indexOf('Safari') === -1, // 是否为Webapp,没有头部和底部
isTrident: userAgent.indexOf('Trident') > -1, //IE内核
isPresto: userAgent.inexOf('Presto') > -1, // opera 内核
isWebKit: userAgent.indexOf('AppleWebkit') > -1, // 苹果谷歌内核
isGecko: userAgent.indexOf('Gecko') > -1 && userAgent.indexOf('KHTML') === -1, //火狐内核
isWechat: !!userAgent.match(/micromessenger/gi),
isWeiBo: !!userAgent.match(/weibo/gi),
isQQ: !!userAgent.match(/qq/gi),
}
const language = (navigator.browserLanguage || navigator.language).toLowerCase();
return {
version, language
}
}