最近遇到了pad端适配的需求,需要判断用户浏览器所处环境。目前主流有两种方式来判断,靠分辨率,dpr配合 和 使用浏览器指纹userAgent。 考虑到分辨率可以进行调整,各种冷门机型分辨率参差不齐,所以最终选择了 UA 进行判断。
将浏览器浏览器所处环境的代码整理了一下,供以后使用~
const ua = navigator.userAgent;
const isWindowsPhone = /(?:Windows Phone)/.test(ua);
const isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;
const isAndroid = /(?:Android)/.test(ua);
const isFireFox = /(?:Firefox)/.test(ua);
const isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua));
const isPhone = /(?:iPhone)/.test(ua) && !isTablet;
const isPc = !isPhone && !isAndroid && !isSymbian;
const isMobile = (isPhone || isTablet || isAndroid && !isPc) || /(?:Mobile)/.test(ua);
return {
isTablet,
isPhone,
isAndroid,
isPc,
isMobile,
};