function navParams() { let params = { // 胶囊(true) menuButton: { width: 0, height: 0, // 原生导航栏是否禁止移除 nativeNavNoRemove: true }, // 导航栏 // 可自定义,wx小程序会强制更改 navBar: { height: 0, // 导航栏字体大小 wx小程序 ios:13,Android:17 fontSize: 0, // 导航栏样式 wx小程序时:ios:center,Android:left style: '', // 导航栏可用宽度 wx小程序时 ios,Android:屏幕宽-胶囊 enableWidth: 0, // 导航栏不可用宽度 wx小程序时 ios,Android:胶囊+胶囊距离屏幕右侧边界的距离 disableWidth: 0 }, window: { width: 0, height: 0 }, os: { osName: '' }, // 导航栏+状态栏高度 navStatusHeight: '0px', // 状态栏高度 statusBarHeight: 0, unit: 'px' } // 同步获取信息 let info = uni.getSystemInfoSync(); // 状态栏高度 params.statusBarHeight = info.statusBarHeight; params.window.width = info.screenWidth params.window.height = info.screenHeight params.os.osName = info.osName // 获取胶囊相关内容 // #ifdef MP-WEIXIN let menuButton = uni.getMenuButtonBoundingClientRect(); params.menuButton.width = menuButton.width; params.menuButton.height = menuButton.height; let paddingTop = menuButton.top - params.statusBarHeight; let paddingBottom = 0; let realNavHeight = 0 if (params.os.osName === 'ios') { paddingBottom = paddingTop * 2; realNavHeight = params.menuButton.height; params.navBar.fontSize = 13; params.navBar.style = 'center'; params.menuButton.nativeNavNoRemove = false; } else if (params.os.osName === 'android') { paddingBottom = paddingTop; realNavHeight = params.menuButton.height; params.navBar.fontSize = 17; params.navBar.style = 'left'; params.menuButton.nativeNavNoRemove = false; } else if (params.os.osName === 'windows') { // 胶囊windows返回的貌似不对 // 所以 padding realNavHeight 都自己设置 paddingTop = 5; paddingBottom = 5; realNavHeight = 32 params.navBar.fontSize = 14; params.navBar.style = 'center'; } else { // Harmony,Android paddingBottom = paddingTop; params.navBar.fontSize = 17; params.navBar.style = 'left'; // windows、macos 未测试 } // params.navBar.paddingRight = params.window.width - menuButton.right; params.navBar.height = realNavHeight + paddingTop + paddingBottom; // 导航栏可用宽度 屏幕左边界到胶囊左边界 params.navBar.enableWidth = menuButton.left; params.navBar.disableWidth = params.window.width - params.navBar.enableWidth; // #endif params.navStatusHeight = params.statusBarHeight + params.navBar.height console.log(params); return params } export { navParams }