有时候一份代码可以要适应pc端,移动端。而pc可用又windows,mac系统,移动分android,ios系统。那我们怎么判断当前环境是处于什么系统下呢?
window.navigator.userAgent用来区分设备和浏览器
navigator是window对象的一个属性,包含有关浏览器的信息。userAgent是客户端发送服务器的 user-agent 头部的值。我们使用的比较多的就是userAgent。
这里介绍一个插件mobile-detect,该插件用来获取移动端设备信息的。
import MobileDetect from 'mobile-detect'
const md = new MobileDetect(window.navigator.userAgent)
function isIos() {
return md.is('iOS')
}
function isAndroid() {
return md.is('AndroidOS')
}
function isMobile() {
return this.isIos() || this.isAndroid() ? true : false
}
function isDesktop() {
return !this.isMobile()
}
怎么判断横屏竖屏?
可以通过window.orientation来判断设备的横竖屏。
function checkOriention() {
let screenOrientation = ''
if (window.orientation == 0 || window.orientation == 180){
screenOrientation = 'portrait';
}
else if (window.orientation == 90 || window.orientation == -90){
screenOrientation = 'landscape';
}
return screenOrientation;
}
这里的portrait是纵向的意思,landscape是横向的意思。
怎么判断是微信浏览器还是企业微信浏览器?
function isWxBrowser() {
const ua = navigator.userAgent.toLowerCase()
const isWx = ua.match(/MicroMessenger/i)
const isEnterpriseWx = ua.match(/WxWork/i)
return isWx && !isEnterpriseWx
}
function isEnterpriseWxBrowser() {
const ua = navigator.userAgent.toLowerCase()
const isWx = ua.match(/MicroMessenger/i)
const isEnterpriseWx = ua.match(/WxWork/i)
return isWx && isEnterpriseWx
}
怎么判断是windows 还是mac系统?
function isWindows(){
return /macintosh|mac os x/i.test(navigator.userAgent)
}
function isMac(){
return /windows|win32/i.test(navigator.userAgent)
}
好了,上述有什么问题,欢迎指正!!!