DCMarvel
DCMarvel
  • 发布:2020-06-19 11:43
  • 更新:2022-11-21 10:25
  • 阅读:2260

【报Bug】uni.getSystemInfoSync() 获取屏幕信息有误

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 2.7.9

手机系统: iOS

手机系统版本号: iOS 12.4

手机厂商: 苹果

手机机型: 6

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

多次重复打开

预期结果:

打开后获取的高度一致

实际结果:

重复打开几次后获取的高度不一致

bug描述:

uni.getSystemInfoSync()
获取高度随机

页面1

<template>  
    <view class="pages" >  
        <text>页面1</text>  
        <button type="default" @tap="toPage">转页面2</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                socket : false  
            }  
        },  
        onLoad() {  
        },  
        methods: {  
            toPage() {  
                uni.navigateTo({  
                    url: '/pages/index/test2',  
                });  
            }  
        }  
    }  
</script>  

<style>  
</style>  

页面2


<template>  
    <view class="pages" >  
        <text >页面2</text>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                socket : false  
            }  
        },  
        onLoad() {  
            console.log(uni.getSystemInfoSync().safeArea.height);  
        },  
        methods: {  
        }  
    }  
</script>  

<style>  
</style>  

示例图片无法插入

img

2020-06-19 11:43 负责人:无 分享
已邀请:
DCMarvel

DCMarvel (作者)

此BUG无法复现吗???

  • DCloud_UNI_Anne

    在onReady里获取,问题已记录后续优化,感谢您的反馈!

    2020-12-25 11:38

  • MonikaChen

    回复 DCloud_UNI_Anne: 应该优化不了吧,没ready之前,页面还没渲染,高度肯定无法确定

    2020-12-25 23:52

  • DCMarvel (作者)

    回复 MonikaChen: 获取设备屏幕高度就不应该涉及到渲染

    2020-12-26 11:07

  • MonikaChen

    回复 DCMarvel: getSystemInfo里面有个windowHeight,这是去除了顶部导航栏高度之后的高度,如果没ready,这个高度会大

    2020-12-26 23:56

  • DCMarvel (作者)

    回复 MonikaChen: windowHeight 不应该是屏幕高度吗,就应该包含顶部导航栏啊,我想开发想要获取屏幕高度就是真实的屏幕高度,包含不包含顶部导航栏或tab栏都应该获取高度后在处理,不是获取到已经处理过的高度 !卧槽 刚刚看文档发现screenHeight,不知道什么时候更新的.....

    2020-12-27 09:25

  • MonikaChen

    回复 DCMarvel: 我实践测试windowHeight是去除了顶部导航后的高度,所以在做网页时,在ready里获取,不然无法满足我的要求

    2020-12-28 00:37

8***@qq.com

8***@qq.com

能,非常坑,很久了一直这样的

1***@qq.com

1***@qq.com

基金

DCloud_UNI_GSQ

DCloud_UNI_GSQ

放在 onReady 里获取

MonikaChen

MonikaChen

我一直在onReady里获取,没遇到过这个问题。
事实上,我一开始打算在onLoad里获取,但是直觉上感觉不对,于是就没在onLoad里试过。。

d***@163.com

d***@163.com

nvue也存在这个问题,获取安全区高度有问题。https://ask.dcloud.net.cn/question/157756

该问题目前已经被锁定, 无法添加新回复