uni-app 大屏全屏应用隐藏虚拟导航栏后载入新窗口会自动预留虚拟导航栏位置
uni-app 大屏全屏应用隐藏虚拟导航栏后载入新窗口会自动预留虚拟导航栏位置
操作步骤:
- 直接出现预留位置
预期结果:
- 不出现预留位置
实际结果:
- 出现预留位置
bug描述:
- 大屏应用在横版全屏状态下跳转页面自动预留导航栏
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC开发环境版本 | 12.0.1 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.3.0 |
| 手机系统 | Android |
| 手机系统版本 | Android 6.0 |
| 手机厂商 | 联想 |
| 手机机型 | 平板电脑 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 大屏全屏应用隐藏虚拟导航栏后载入新窗口会自动预留虚拟导航栏位置的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
已收到类似问题还在排查
更多关于uni-app 大屏全屏应用隐藏虚拟导航栏后载入新窗口会自动预留虚拟导航栏位置的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好问下排查出来了吗?
这个问题是由于Android系统在横屏全屏模式下,虚拟导航栏的显示策略导致的。在uni-app中,可以通过以下方式解决:
- 在App.vue的onLaunch中设置全屏模式:
onLaunch: function() {
// #ifdef APP-PLUS
plus.navigator.setFullscreen(true);
// #endif
}
- 在需要全屏的页面中,使用沉浸式状态栏:
onLoad() {
// #ifdef APP-PLUS
plus.navigator.setStatusBarBackground('#000000');
plus.navigator.setStatusBarStyle('light');
// #endif
}
- 对于Android平板,可能需要额外处理: 在manifest.json中配置:
{
"app-plus": {
"fullscreen": true,
"immersed": true,
"statusbar": {
"immersed": true
}
}
}
- 如果问题仍然存在,可以尝试在页面跳转时动态设置:
// 跳转前设置
uni.navigateTo({
url: '/pages/target/target',
success: () => {
// #ifdef APP-PLUS
plus.navigator.setFullscreen(true);
// #endif
}
});

