6***@qq.com
6***@qq.com
  • 发布:2025-07-25 09:45
  • 更新:2025-07-25 11:09
  • 阅读:302

【报Bug】安卓app端web-view引入的同为uniapp开发的h5页面的navbar获取不到状态栏的高度,iOS可以

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: sequoia 15.5

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 红米note 13

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
    <view class="">  
        <web-view  
            id="web-view"  
            ref="webview"  
            :src="orderUrl"  
            @message="handleMessage"  
        ></web-view>  
    </view>  
</template>  
<script>  

export default {  
    name: 'applyToJoin',  
    data() {  
        return {  
            orderUrl: 'https://hellouniapp.dcloud.net.cn/pages/tabBar/extUI/extUI'  
            // userInfo: uni.getStorageSync('userInfo') || {},  
        };  
    },  
    onLoad() {  
        const userInfo = uni.getStorageSync('userInfo');  
        // this.orderUrl = `${config.orderUrl}/#/?phone=${userInfo.phone}`;  
    },  
    methods: {  
        handleMessage(e) {  
            if (e && e.detail && e.detail.data) {  
                const data = e.detail.data[0];  
                if (data.action === 'goBack') {  
                    uni.navigateBack();  
                }  
            }  
        }  
    },  
    onUnload() {}  
};  
</script>  

操作步骤:

如上,我直接新建了一个项目引入h5的地址,直接在代码在附件里面可以运行。

预期结果:

h5的navbar不与状态栏重合

实际结果:

h5的navbar与状态栏重合

bug描述:

真机测试的时候打到手机上的app通过web-view引用同为uniapp开发的h5的页面,安卓端h5的页面导航栏获取不到status-bar的高度,但是iOS是可以的,为啥?我用plus.navigator.getStatusbarHeight()是可以获取到的,但是uni自带的那些方法还有变量都是为0。我其实就是想解决一下跳入h5页面,app和h5存在双navbar的问题,所以app的web-view页面的的导航栏我设置为custom,使用h5的navbar,但是安卓端的navbar直接冲顶了,跟状态栏重叠在一起。
如图。

2025-07-25 09:45 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

看你代码中也没有获取高度的逻辑,你写在哪里呢?

  • 6***@qq.com (作者)

    我认为pages.json导航栏不需要再去特殊处理吧,不是会自动去获取状态栏的高度吗?为什么还要去获取高度?我给的demo是可以验证到我说的这种问题,在web-view引用的h5页面,具体状态栏高度获取用uni.getSystemInfoSync().statusBarHeight 和 plus.navigator.getStatusbarHeight() 对比就行,安卓的手机用plus.可以获取到,uni.的获取不到状态栏高度,但是iOS是可以的。

    2025-07-25 17:12

  • DCloud_UNI_yuhe

    回复 6***@qq.com: 等我看一下这个问题的

    2025-07-25 19:06

要回复问题请先登录注册