名帝
名帝
  • 发布:2025-03-28 18:17
  • 更新:2025-04-07 11:29
  • 阅读:2262

【报Bug】uni.getSystemInfoSync()在ios端几率性获取宽高参数错误

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.57

浏览器平台: 微信内置浏览器

浏览器版本: 最新内核版本

项目创建方式: HBuilderX

示例代码:

var systemInfo= uni.getSystemInfoSync()
直接打印几率性出现这个问题

并且uni.onWindowResize这个api有一个百分百复现的bug,返回的deviceOrientation字段百分百是反序的,然后size里面宽高也全部异常

操作步骤:

横屏进入项目时

预期结果:

返回参数正常

实际结果:

参数返回异常,并且uni.onWindowResize获取的宽高是否横屏也是异常错误的

bug描述:

截图参数是通过uni.getSystemInfoSync()获取的,很明显宽高字段出现了问题,手机处于横屏状态

2025-03-28 18:17 负责人:无 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

我看产品分类是 h5 ,我使用下面代码运行 vue3+ HBuilderX alpha 运行到 chrome,切换屏幕方向表现正常。你提供一个复现工程,并明确操作步骤吧。

<template>  
  <view>123</view>  
</template>  
<script>  
  export default{  
    onLoad() {  
      const windowResizeCallback = (res) => {  
        console.log(res.deviceOrientation)  
        console.log('变化后的窗口宽度=' + res.size.windowWidth)  
        console.log('变化后的窗口高度=' + res.size.windowHeight)  
      }  
      uni.onWindowResize(windowResizeCallback)  
    }  
  }  
</script>  
  • 名帝 (作者)

    v2去微信浏览器试试,进入项目快速横屏手机纪律性能遇见,然后onWindowResize是百分百有问题的

    2025-04-07 11:04

  • 名帝 (作者)

    快速横竖屏旋转手机几率大的很

    2025-04-07 11:05

名帝

名帝 (作者) - I want to play a game with you.

<template>  
    <view class="" style="width: 100vw;height: 100vh;overflow: hidden;display: flex;justify-content: center;flex-direction: column;">  
        <view class="" style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;">  
            {{windowInfo}}  
        </view>  
    </view>  
</template>  

<script>  
    export default {  
        components: {},  
        data() {  
            return {  
                windowInfo: {}  
            };  
        },  
        onLoad() {  
            this.$nextTick( () => {  
                this.listening()  
            } )  
        },  
        methods: {  
            listening() {  
                const windowResizeCallback = ( res ) => {  
                    this.$set( this.windowInfo, 'windowWidth', res.size.windowWidth )  
                    this.$set( this.windowInfo, 'windowHeight', res.size.windowHeight )  
                    this.$set( this.windowInfo, 'landscape', res.deviceOrientation == 'landscape' )  
                    console.log( "屏幕变化", this.windowInfo.landscape ? '横屏' : '竖屏', this.windowInfo.windowWidth, this.windowInfo.windowHeight )  
                }  
                uni.onWindowResize( windowResizeCallback )  
            }  
        },  
    };  
</script>  

<style>  

</style>
名帝

名帝 (作者) - I want to play a game with you.

感觉是ios端并且微信浏览器才有这个问题

要回复问题请先登录注册