muzidigbig-utils-npm
Version:
一个日常开发积累的工具包。 每次 npm publish 都需要修改 package.json version版本号保证其唯一。
67 lines (60 loc) • 2.31 kB
JavaScript
/**
* 判断当前设备是Andoird还是iOS
* @returns {number} 0: ios 1: android 2: other
*/
const isIOS = () => {
let u = navigator.userAgent,
app = navigator.appVersion
let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1
let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/)
if (isIOS) {
return 0
} else if (isAndroid) {
return 1
} else {
return 2
}
}
/**
* 检测设备
* @returns {string} "Mobile" | "Desktop"
*/
const isMobile = () =>
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
navigator.userAgent
) ? "Mobile" : "Desktop";
/**
* 判断当前处于什么环境(浏览器环境 | 设备终端)
* @returns {object} 设备类型
*/
const browserType = () => {
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.indexOf('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
}
}
export {
isIOS,
isMobile,
browserType
}