微信小程序开发web页面进行UA适配的方法
创建获取UA的代码函数:function getos() {
const ua = window.navigator.userAgent.toLowerCase();
const isWindows = ua.indexOf("windows") !== -1;
const isHarmony = ua.indexOf("openharmony") !== -1;
const isHarmonyPC = isHarmony && ua.indexOf("pc;") !== -1;
const isRealIpadUA = ua.indexOf("ipad") !== -1;
const isMaskedIpad = ua.indexOf("macintosh") !== -1 && navigator.maxTouchPoints > 1;// 伪装 iPad: UA 包含 "macintosh" 但支持触控 (系统认为是桌面模式)
const isMac = ua.indexOf("macintosh") !== -1;
return {
isWechat: ua.indexOf("micromessenger") !== -1,// 是否为微信客户端浏览器
isAndroid: ua.indexOf("android")!==-1 && !isHarmony,// Android 手机,排除 Harmony
isIphone: ua.indexOf("iphone")!==-1|| ua.indexOf("ipod")!==-1,// Iphone 手机等移动设备
isHarmony: isHarmony && !isHarmonyPC,// Harmony 手机 (排除 Harmony PC)
isIpad: isRealIpadUA || isMaskedIpad,// iPad 或 伪装 Mac 的 iPad
isWindows, // Windows 电脑
isHarmonyPC, // 鸿蒙 PC
isMac, // Mac 电脑 (也包含桌面模式的 iPad)
isPC: isMac || isWindows || isHarmonyPC// 广义 PC:用于判断是否展示宽屏/桌面版 UI
};
}使用时:
const os= getos()
if (os.isWechat) {} // 微信客户端浏览器处理逻辑
// 移动端处理逻辑
if (os.isAndroid) {} // Android 手机、平板处理逻辑
if (os.isHarmony) {} // HarmonyOS 手机、平板处理逻辑
if (os.isIphone) {} // Iphone 手机处理逻辑
if (os.isIpad) {} // iPad 手机处理逻辑
// PC处理逻辑
if (os.isHarmonyPC) {} // HarmonyOS PC处理逻辑
else if (os.isMac) {} // Mac处理
else if (os.isWindows) {} // windows处理
if (os.isPC) {} // 桌面版浏览器处理逻辑
页:
[1]