From b3b2d134e49ab3685d1929410863b55e3ca71024 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Mon, 28 Jun 2021 17:42:19 +0800 Subject: [PATCH] =?UTF-8?q?chore(App):=20isTabBarPage=E3=80=81getStatusbar?= =?UTF-8?q?Height=E3=80=81uuid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/uni-app-plus/src/helpers/plus.ts | 29 +++++++++++++++++++ .../uni-app-plus/src/helpers/statusBar.ts | 10 +++++++ packages/uni-app-plus/src/helpers/uuid.ts | 10 +++++++ 3 files changed, 49 insertions(+) create mode 100644 packages/uni-app-plus/src/helpers/statusBar.ts create mode 100644 packages/uni-app-plus/src/helpers/uuid.ts diff --git a/packages/uni-app-plus/src/helpers/plus.ts b/packages/uni-app-plus/src/helpers/plus.ts index d814a89d0..31a08d7d4 100644 --- a/packages/uni-app-plus/src/helpers/plus.ts +++ b/packages/uni-app-plus/src/helpers/plus.ts @@ -78,3 +78,32 @@ export function callApiSync any>( reject(errMsg) }) } + +export function isTabBarPage(path = '') { + if (!(__uniConfig.tabBar && Array.isArray(__uniConfig.tabBar.list))) { + return false + } + try { + if (!path) { + const pages = getCurrentPages() + if (!pages.length) { + return false + } + const page = pages[pages.length - 1] + if (!page) { + return false + } + return page.$page.meta.isTabBar + } + if (!/^\//.test(path)) { + path = '/' + path + } + const route = __uniRoutes.find((route) => route.path === path) + return route && route.meta.isTabBar + } catch (e) { + if (process.env.NODE_ENV !== 'production') { + console.log('getCurrentPages is not ready') + } + } + return false +} diff --git a/packages/uni-app-plus/src/helpers/statusBar.ts b/packages/uni-app-plus/src/helpers/statusBar.ts new file mode 100644 index 000000000..3b07480ff --- /dev/null +++ b/packages/uni-app-plus/src/helpers/statusBar.ts @@ -0,0 +1,10 @@ +export function getStatusbarHeight() { + // 横屏时 iOS 获取的状态栏高度错误,进行纠正 + return plus.navigator.isImmersedStatusbar() + ? Math.round( + plus.os.name! === 'iOS' + ? plus.navigator.getSafeAreaInsets().top! + : plus.navigator.getStatusbarHeight() + ) + : 0 +} diff --git a/packages/uni-app-plus/src/helpers/uuid.ts b/packages/uni-app-plus/src/helpers/uuid.ts new file mode 100644 index 000000000..2330feeab --- /dev/null +++ b/packages/uni-app-plus/src/helpers/uuid.ts @@ -0,0 +1,10 @@ +let deviceId: string + +interface _PlusRuntime extends PlusRuntime { + getDCloudId: (...args: any[]) => string +} + +export default function () { + deviceId = deviceId || (plus.runtime as _PlusRuntime).getDCloudId() + return deviceId +} -- GitLab