- 通过 userAgent 检测
function isMobileDevice() {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}
if (isMobileDevice()) {
console.log("这是移动设备");
} else {
console.log("这不是移动设备");
}
- 通过屏幕宽度检测
function isMobileView() {
return window.innerWidth <= 768;
}
if (isMobileView()) {
console.log("移动端视图");
} else {
console.log("桌面端视图");
}
- 结合触摸事件检测
function isTouchDevice() {
return 'ontouchstart' in window || navigator.maxTouchPoints;
}
if (isTouchDevice()) {
console.log("支持触摸的设备");
} else {
console.log("非触摸设备");
}
- 使用现代 API 检测【推荐使用】
function isMobile() {
const userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(userAgent)) {
return true;
}
if (window.innerWidth <= 800 && window.innerHeight <= 600) {
return true;
}
if (window.matchMedia("(max-width: 768px)").matches && (window.matchMedia("(orientation: portrait)").matches ||
window.matchMedia("(orientation: landscape)").matches)) {
return true;
}
return false;
}
- 使用媒体查询检测
function isMobileMediaQuery() {
return window.matchMedia("only screen and (max-width: 768px)").matches;
}