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上拿到的一样。目前只发现华为机型的默认浏览器有这个错误

相关推荐
weixin_4434785111 分钟前
Flutter学习之自定义组件
javascript·学习·flutter
编程牛马姐8 小时前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
妮妮喔妮12 小时前
supabase的webhook报错
开发语言·前端·javascript
qq_120840937112 小时前
Three.js 大场景分块加载实战:从全量渲染到可视集调度
开发语言·javascript·数码相机
漂流瓶jz13 小时前
运行时vs编译时:CSS in JS四种主流方案介绍和对比
前端·javascript·css
钮钴禄·爱因斯晨14 小时前
他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!
java·开发语言·前端·javascript·css·html
Watermelo61714 小时前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
Hello--_--World15 小时前
JS:this指向、bind、call、apply、知识点与相关面试题
开发语言·javascript·ecmascript
jserTang15 小时前
手撕 Claude Code-4: TodoWrite 与任务系统
前端·javascript·后端
腹黑天蝎座15 小时前
大屏开发必读:Scale/VW/Rem/流式/断点/混合方案全解析(附完整demo)
前端·javascript