fix: 在PC端,需要 uni.hideTabBar()

This commit is contained in:
陆柯 2023-05-14 10:46:16 +08:00
parent c30c4cc66d
commit 076a42f86f

View File

@ -75,41 +75,25 @@ export default {
// document.title = ???
// #endif
// 必须要在有 tab 的页面里 setTabBarItem 才有效果
//const midIndex = parseInt(pagesJson?.tabBar?.list?.length/2) // 如果存在midButton,实际上tabBar.list.length必须为偶数。不过为了心安再parseInt一下。
pagesJson?.tabBar?.list?.forEach((tab, tabIndex) => {
if (tab.i18nText && tab.i18nText[mylang]) {
uni.setTabBarItem({
// #ifdef H5
index: tabIndex, // + ((pagesJson?.tabBar?.midButton?.iconPath && tabIndex >= midIndex)?1:0), // H5 里,如果使用了 midButtontabBarItem的index出现错位需hack调整。推测在H5里 midButton 作为一个普通tab被插入到 tabBar 里,导致 tabBar 的 index 和 pagesJson.tabBar.list 的 index 错位了。[20211031] 注意到,从 HBuilderX 3.2.12.20211029 起,在 H5 里也没有错位了。
// #endif
// #ifndef H5
index: tabIndex,
// #endif
text: tab.i18nText[mylang],
})
}
})
// uni.showTabBar({})
// 不再使用 topWindow 方案
// // #ifdef H5
// // 响应式方案:仅仅根据当前设备类型,如果是 PC 大屏幕,则始终显示 topWindow 并且隐藏顶部 navibar 和底部 tabBar。
// if (pagesJson?.topWindow || !envar?.showBarsOnPC) {
// // 如果页头不是通过 pagesJson.topWindow 而是作为组件来引入个别页面,那么定义配置参数 showBarsOnPC 来控制。
// if (uni.getSystemInfoSync().deviceType === 'pc') {
// if (window.innerWidth > (pagesJson?.topWindow?.matchMedia?.minWidth || 0)) {
// uni.hideTabBar()
// // 不知为何,同一个二级页面,如果第二次进入,就仍然会显示 navibar, 必须通过 setTimeout 执行才能彻底隐藏。
// setTimeout(() => {
// document.getElementsByTagName('uni-page-head')?.[0]?.remove()
// }, 0)
// }
// } else {
// document.getElementsByTagName('uni-top-window')?.[0]?.remove() // 强制隐藏 topWindow否则在手机浏览器里topWindow 会遮挡掉 navibar。
// }
// }
// // #endif
if (uni.getSystemInfoSync().deviceType === 'pc') {
uni.hideTabBar()
} else {
// 必须要在有 tab 的页面里 setTabBarItem 才有效果
//const midIndex = parseInt(pagesJson?.tabBar?.list?.length/2) // 如果存在midButton,实际上tabBar.list.length必须为偶数。不过为了心安再parseInt一下。
pagesJson?.tabBar?.list?.forEach((tab, tabIndex) => {
if (tab.i18nText && tab.i18nText[mylang]) {
uni.setTabBarItem({
// #ifdef H5
index: tabIndex, // + ((pagesJson?.tabBar?.midButton?.iconPath && tabIndex >= midIndex)?1:0), // H5 里,如果使用了 midButtontabBarItem的index出现错位需hack调整。推测在H5里 midButton 作为一个普通tab被插入到 tabBar 里,导致 tabBar 的 index 和 pagesJson.tabBar.list 的 index 错位了。[20211031] 注意到,从 HBuilderX 3.2.12.20211029 起,在 H5 里也没有错位了。
// #endif
// #ifndef H5
index: tabIndex,
// #endif
text: tab.i18nText[mylang],
})
}
})
}
//#ifdef H5
//// 微信浏览器里,本身就显示了标题栏,和自有的导航栏形成功能重叠和混淆。