方法一
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flagPc = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flagPc = false;
break;
}
}
return flagPc;
}
var flagZt = IsPC();
//console.log(flag) //true为PC端,false为手机端
方法二
var system = {};
var p = navigator.platform;
console.log(p);
document.getElementById("test2").innerHTML = p;
system.win = p.indexOf("Win") == 0;
system.mac = p.indexOf("Mac") == 0;
if (system.win || system.mac) {//如果是电脑
console.log('pc');
} else { //如果是手机,
console.log('移动端');
}
方法三
区分移动端:
export const isMobile = () => {
return /(iPhone|iPad|iPod|iOS|Android|Linux armv8l|Linux armv7l|Linux aarch64)/i.test(navigator.platform);
};
区分PC端:
var system = {};
system.pingtai = /(Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64)/i.test(navigator.platform);
if (system.pingtai) {
//电脑
} else {
//手机
}
总结
方法一:是根据用户代理来判断是pc端还是移动端
方法二:是根据硬件平台来判断是pc端还是移动端
方法三:是根据硬件平台来判断是pc端还是移动端(更严谨了,但是要注意维护)
这两者结合一下 才是最方便的 个人推荐方法二,如果想更严谨就用方法三
如果是使用电脑浏览器然后f12选择移动端浏览,这个时候用户代理就会认为它是移动端,硬件平台识别的话,不管怎么切换,都是一个平台
备注:
windows电脑的硬件平台是显示:Win32
mac电脑的硬件平台是显示:Maclntel
安卓手机的硬件平台是显示:
在微信浏览器和手机自带浏览器:Linux aarch64
在uc浏览器 :Linux armv8l
苹果手机的硬件平台是显示:iphone
自己测试的麒麟系统的硬件平台是显示:Linux mips64
别人测试的麒麟系统和统信系统的硬件平台是显示:Linux aarch64
移动端:iPhone|iPad|iPod|iOS|Android|Linux armv8l|Linux armv7l|Linux aarch64
PC端: Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64
参考链接:
H5 navigator.platform 属性值枚举以及使用场景__Dream maker的博客-CSDN博客