From 057fb9c201a8e7b8e417a1c34e6cb9dc4768cc62 Mon Sep 17 00:00:00 2001 From: qiang Date: Thu, 26 Sep 2019 16:05:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20app=20=E7=AB=AF=20tabbar=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/platforms/app-plus/index.js | 6 ++++-- src/platforms/app-plus/service/api/device/system.js | 3 +-- src/platforms/app-plus/service/constants.js | 3 +-- src/platforms/app-plus/service/framework/tab-bar.js | 5 +++++ 4 files changed, 11 insertions(+), 6 deletions(-) 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 8bb106324..b048939ad 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 7c90cc0ad..ec38d1b84 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 185b5a466..9e97bd577 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 3c8463bb2..2ef4f3510 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 } } -- GitLab