interface SystemInfo { statusBarHeight?: number; [key: string]: any; } interface MenuButtonRect { top: number; height: number; [key: string]: any; } interface LeftIcon { left: string; width: string; } const SYSTEM_INFO: SystemInfo = uni.getSystemInfoSync(); export const getStatusBarHeight = (): number => SYSTEM_INFO.statusBarHeight || 0; export const getTitleBarHeight = (): number => { if (uni.getMenuButtonBoundingClientRect) { const { top, height }: MenuButtonRect = uni.getMenuButtonBoundingClientRect(); return height + (top - getStatusBarHeight()) * 2; } else { return 44; } } export const getNavBarHeight = (): number => getStatusBarHeight() + getTitleBarHeight(); export const getLeftIconLeft = (): number => { // #ifdef MP-TOUTIAO const { leftIcon: { left, width } }: { leftIcon: LeftIcon } = tt.getCustomButtonBoundingClientRect(); return left + parseInt(width); // #endif // #ifndef MP-TOUTIAO return 0; // #endif } export const getNavbarHeight2 = () => { const systemInfo = uni.getSystemInfoSync() statusBarHeight.value = systemInfo.statusBarHeight || 0 let navBarHeight = 44 if (systemInfo.model.indexOf('iPhone') !== -1 && parseInt(systemInfo.model.slice(-2)) >= 11) { navBarHeight = 48 } const totalHeight = statusBarHeight.value + navBarHeight navbarHeight.value = totalHeight + 'px' } /** * 获取屏幕刘海高度 */ export const getNotchHeight = () => { const systemInfo = uni.getSystemInfoSync() return systemInfo.safeArea?.top || 0 }