JS_判断打开的是什么手机品牌,判断是否是手机,平板,pc

判断业务是否是 iphone、华为、小米、oppo、view、三星 打开
手机品牌userAgent库 http://www.fynas.com/ua

js 复制代码
function judgeBrand(sUserAgent) {
	var isIphone = sUserAgent.match(/iphone/i) == 'iphone';
	var isHuawei = sUserAgent.match(/huawei/i) == 'huawei';
	var isHonor = sUserAgent.match(/honor/i) == 'honor';
	var isOppo = sUserAgent.match(/oppo/i) == 'oppo';
	var isOppoR15 = sUserAgent.match(/pacm00/i) == 'pacm00';
	var isVivo = sUserAgent.match(/vivo/i) == 'vivo';
	var isXiaomi = sUserAgent.match(/mi\s/i) == 'mi ';
	var isXiaomi2s = sUserAgent.match(/mix\s/i) == 'mix ';
	var isRedmi = sUserAgent.match(/redmi/i) == 'redmi';
	var isSamsung = sUserAgent.match(/sm-/i) == 'sm-';
	var isLG = sUserAgent.match(/lg/i) == 'lg';
	if (isIphone) {
		return 'iPhone';
	} else if (isHuawei || isHonor) {
		return 'Huawei';
	} else if (isOppo || isOppoR15) {
		return 'Oppo';
	} else if (isVivo) {
		return 'vivo';
	} else if (isXiaomi || isRedmi || isXiaomi2s) {
		return 'mi';
	} else if (isSamsung) {
		return 'Samsung';
	} else if (isLG) {
		return 'LG';
	} else {
		return '其他型号手机';
	}
}

var brand = judgeBrand(navigator.userAgent.toLowerCase());

判断是否是手机,平板,pc

js 复制代码
function checkAgent() {
	var sUserAgent = navigator.userAgent.toLowerCase();
	var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
	var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
	var bIsMidp = sUserAgent.match(/midp/i) == "midp";
	var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
	var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
	var bIsAndroid = sUserAgent.match(/android/i) == "android";
	var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
	var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
	if (!(bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM || bIsIpad)) {
		return 'pc';
	} else if(bIsIpad){
		return 'pad';
	}else{
		return 'phone';
	}
}

注:以上functioncheckAgent,在使用华为P20 Pro 默认浏览器打开时,会被误判为PC。因为在华为P20 Pro的默认浏览器上,并没有重写userAgent,拿到的userAgent跟在PC上拿到的一样。目前只发现华为机型的默认浏览器有这个错误

相关推荐
小兵张健4 小时前
开源 playwright-pool 会话池来了
前端·javascript·github
codingWhat7 小时前
介绍一个手势识别库——AlloyFinger
前端·javascript·vue.js
Lee川7 小时前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
进击的尘埃7 小时前
Web Worker 与 OffscreenCanvas:把主线程从重活里解放出来
javascript
codingWhat8 小时前
手撸一个「能打」的 React Table 组件
前端·javascript·react.js
进击的尘埃8 小时前
用 TypeScript 的 infer 搓一个类型安全的深层路径访问工具
javascript
yuki_uix8 小时前
Object.entries:优雅处理 Object 的瑞士军刀
前端·javascript
Lee川8 小时前
JavaScript 面向对象编程全景指南:从原始字面量到原型链的终极进化
javascript·面试
Neptune112 小时前
JavaScript回归基本功之---类型判断--typeof篇
前端·javascript·面试
进击的尘埃12 小时前
微前端沙箱隔离:qiankun 和 wujie 到底在争什么
javascript