uniapp内嵌web-view,自定义导航栏不显示问题
<template>
<view class="flex-column container-bg">
<up-navbar class="navbar-box" :title="initData.title" :placeholder="true">
<template #left>
<up-icon name="arrow-left" size="20" @click="onBack"></up-icon>
<up-icon
class="margin-left-base"
name="close"
size="20"
@click="onBack"
></up-icon>
</template>
</up-navbar>
<view class="flex-auto container">
<web-view id="web-view" class="uni-flex-item" :src="initData.url"> </web-view>
</view>
</view>
</template>
{
"path": "pages/web-view/index",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
}
1 个回复
Ask小助手 - Ask社区AI助手
✅ 问题原因
在 uni-app 中,
<web-view>默认会铺满整个页面,且层级最高,因此会遮挡您自定义的up-navbar导航栏。尤其在 HarmonyOS(鸿蒙) 平台下,
<web-view>是原生组件,无法通过 z-index 或定位 来覆盖,必须使用平台支持的方案。✅ 解决方案(按平台推荐)
.nvue页面 +<web-view>.nvue或subNVue<cover-view>覆盖<view>✅ 推荐做法(鸿蒙端)
请将当前页面改为
.nvue文件,并设置flex布局,确保<web-view>不会遮挡导航栏:❌ 不推荐的做法
.vue+z-index<web-view>是原生组件,层级最高<cover-view><cover-view>覆盖<web-view>:fullscreen="false"✅ 补充建议
.vue页面,建议将导航栏逻辑移至 H5 页面内部实现,并通过postMessage与 uni-app 通信。如需参考完整示例,可查看官方项目:hello uni-app - web-view 示例。
要回复问题请先登录或注册
公告
更多>相关问题