| 1234567891011121314151617181920212223242526272829303132333435363738 |
- const TAB_KEYS = ['nav.home', 'nav.ai', 'nav.message', 'nav.mine']
- /** 与 pages.json tabBar.list[].pagePath 一致(无开头 /) */
- const TAB_PAGE_PATHS = new Set([
- 'pages/home/index',
- 'pages/ai/index',
- 'pages/message/index',
- 'pages/mine/index'
- ])
- /**
- * 当前栈顶是否为原生 TabBar 页;分包等页面调用 setTabBar* 会报 not TabBar page。
- */
- export function isTabBarPage() {
- const stack = getCurrentPages()
- if (!stack.length) return false
- const cur = stack[stack.length - 1]
- const route = cur.route || ''
- return TAB_PAGE_PATHS.has(route)
- }
- /**
- * 原生 tabBar 的 text 不能写进 pages.json 的 i18n,需在运行时按当前语言更新。
- * @param {(key: string) => string} t 如 (k) => this.$t(k)
- */
- export function syncTabBarText(t) {
- if (!isTabBarPage()) return
- TAB_KEYS.forEach((key, index) => {
- uni.setTabBarItem({
- index,
- text: t(key),
- fail() {
- /* 个别端仍可能失败,静默即可 */
- }
- })
- })
- }
|