You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.7 KiB

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