diff --git a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js index 8bb10632448f0aef14a437e07cd15f65dc5669ec..b048939ad23330dbceee0b30d5dc444f6d1d5dec 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/app-plus/index.js @@ -64,6 +64,8 @@ module.exports = function (pagesJson, userManifestJson) { navigationBarTextStyle = 'white', navigationBarBackgroundColor = '#000000' } = appJson['window'] || {} + + const TABBAR_HEIGHT = 56 let manifestJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, './manifest.json'), 'utf8')) @@ -364,7 +366,7 @@ module.exports = function (pagesJson, userManifestJson) { // 纯 nvue 带 tab if (pagesJson.tabBar && pagesJson.tabBar.list && pagesJson.tabBar.list.length) { const tabBar = manifestJson.plus.tabBar = Object.assign({}, pagesJson.tabBar) - tabBar.height = '56px' + tabBar.height = `${parseFloat(tabBar.height) || TABBAR_HEIGHT}px` // 首页是 tabBar 页面 const item = tabBar.list.find(page => page.pagePath === appJson.pages[0]) if (item) { @@ -374,7 +376,7 @@ module.exports = function (pagesJson, userManifestJson) { } } else if (pagesJson.tabBar && pagesJson.tabBar.list && pagesJson.tabBar.list.length) { const tabBar = manifestJson.plus.tabBar = Object.assign({}, pagesJson.tabBar) - tabBar.height = '56px' + tabBar.height = `${parseFloat(tabBar.height) || TABBAR_HEIGHT}px` if (isNVueEntryPage) { manifestJson.plus.launchwebview.id = '2' } else { diff --git a/src/platforms/app-plus/service/api/device/system.js b/src/platforms/app-plus/service/api/device/system.js index 7c90cc0ad0026ac1f689f535307ec13826234228..ec38d1b84df723713a84bf9fcf18ff9ace9f44c3 100644 --- a/src/platforms/app-plus/service/api/device/system.js +++ b/src/platforms/app-plus/service/api/device/system.js @@ -5,7 +5,6 @@ import { } from '../util' import { - TABBAR_HEIGHT, TITLEBAR_HEIGHT } from '../../constants' @@ -50,7 +49,7 @@ export function getSystemInfo () { safeAreaInsets = ios ? plus.navigator.getSafeAreaInsets() : getSafeAreaInsets() } var windowHeight = Math.min(screenHeight - (titleNView ? (statusBarHeight + TITLEBAR_HEIGHT) - : 0) - (isTabBarPage() && tabBar.visible ? TABBAR_HEIGHT : 0), screenHeight) + : 0) - (isTabBarPage() && tabBar.visible ? tabBar.height : 0), screenHeight) var windowWidth = screenWidth var safeArea = { left: safeAreaInsets.left, diff --git a/src/platforms/app-plus/service/constants.js b/src/platforms/app-plus/service/constants.js index 185b5a466796257adbae54eea2d3deedbda2998b..9e97bd5772be456650086025e9bd959e3cc1cebd 100644 --- a/src/platforms/app-plus/service/constants.js +++ b/src/platforms/app-plus/service/constants.js @@ -1,5 +1,4 @@ export const ANI_SHOW = 'pop-in' export const ANI_DURATION = 300 -export const TABBAR_HEIGHT = 56 -export const TITLEBAR_HEIGHT = 44 +export const TITLEBAR_HEIGHT = 44 diff --git a/src/platforms/app-plus/service/framework/tab-bar.js b/src/platforms/app-plus/service/framework/tab-bar.js index 3c8463bb254ac522e99a1c1269f325605cc33c59..2ef4f351064c9743b3aacdf7d4594051cdf7cac1 100644 --- a/src/platforms/app-plus/service/framework/tab-bar.js +++ b/src/platforms/app-plus/service/framework/tab-bar.js @@ -6,6 +6,8 @@ import { requireNativePlugin } from '../bridge' +const TABBAR_HEIGHT = 56 + let config /** @@ -137,5 +139,8 @@ export default { }, get visible () { return visible + }, + get height () { + return config && config.height ? parseFloat(config.height) : TABBAR_HEIGHT } }