diff --git a/packages/uni-app-plus/src/helpers/plus.ts b/packages/uni-app-plus/src/helpers/plus.ts index d814a89d033061c34ead27ac5ffc3ace67c686b6..31a08d7d477ffed97aa9bc7768813031f5482c8a 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 0000000000000000000000000000000000000000..3b07480ffa1d293df6fba90b01becb21f93896b7 --- /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 0000000000000000000000000000000000000000..2330feeabfe34178b874075b14ea065f79cb0c01 --- /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 +}