JS判断用户设备为手机或电脑端,进行跳转
为了达到更好的用户体验,当下大多数的站点都会将网站区分为手机页面(Mobile 端)和电脑页面(PC端)
通常会采用两种方法:
1.对于页面容量不是很大的展示类网站,如搜索引擎,都会做成响应式,用一套代码解决;
2.而对于页面内容较多的,以交互为主的网站,通常会使用两套代码,这就产生了一个问题:如何判断用户的设备是PC还是Mobile,以进行正确的跳转来防止用户访问到错误的站点导致极差的用户体验;
今天在写代码过程中,就遇到这个问题。
百度了一下,找到如下解决方案:
先放代码:
const system = {
win : false,
mac : false,
xll : false
}
//获取浏览器所搭载平台终端信息
const p = navigator.platform;
system.win = p.indexOf("Win") == 0;
system.mac = p.indexOf("Mac") == 0;
system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
//跳转语句,PC端进行if语句内的操作,Mobile端进行else语句内端操作
if(system.win||system.mac||system.xll){
console.log('这是PC端');
}
else{
console.log('这是Mobile端');
}
因为是React项目,我把这个函数放在了一个GlobalHeader的组件里,并放在了
componentDidMount()
钩子函数中
大功告成~