js判断设备是PC端还是移动端

方法一

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博客

你可能感兴趣的:(前端,判断客户端,js判断设备,判断是PC端还是移动端,js)