最全的移动端判断(含ipad)
2026年3月11日·29 次阅读·
工具
/**
* 判断是否是移动端(含 iPad)
*/
export const isPhone = () => {
const win = getWindow();
if (!win || !win.navigator) return false;
const ua = navigator.userAgent || "";
// UA 关键词匹配(覆盖绝大多数移动设备)
if (
ua.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
)
return true;
// iPadOS 13+ Safari 桌面模式:UA 伪装成 Mac,但 document 有触摸事件
const isSafari = ua.indexOf("Safari") !== -1 && ua.indexOf("Version") !== -1;
const isIPhone = ua.indexOf("iPhone") !== -1;
if (isSafari && !isIPhone && "ontouchend" in document) return true;
// iPadOS 非 Safari 浏览器(WebView 等):platform 伪装成 MacIntel,但触控点 > 1
if (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) return true;
return false;
};