// 自定义 tabBar 实例获取:只有 tab 页自身才有 getTabBar(), // 通知页等非 tab 页调用会拿到 undefined,需从页面栈中查找仍在栈内的 tab 页。 export function getTabBarInstance(): any { const pages = typeof getCurrentPages === 'function' ? getCurrentPages() : [] for (let i = pages.length - 1; i >= 0; i--) { const page = pages[i] as any const tabBar = page && page.getTabBar && page.getTabBar() if (tabBar) return tabBar } return null } // 同步未读红点:优先让 tabBar 重新拉取真实数量,取不到实例时静默跳过 export function syncTabBarUnread(force = true): void { const tabBar = getTabBarInstance() if (tabBar && typeof tabBar.syncUnread === 'function') tabBar.syncUnread(force) } // 更新选中态:走 tabBar 的 setSelected(内部保证首帧安全), // 老版本实例没有该方法时降级为 setData export function setTabBarSelected(index: number): void { const tabBar = getTabBarInstance() if (!tabBar) return if (typeof tabBar.setSelected === 'function') tabBar.setSelected(index) else tabBar.setData({ selected: index }) }