uni-app获取分辨率有差异

uni-app获取分辨率有差异

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windows11
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 Android
手机系统版本号 Android 12
手机厂商 香橙派
手机机型 zero3
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

let windows_info = uni.getWindowInfo() let ww = windows_info.windowWidth let hh = windows_info.windowHeight // #ifdef APP windows_info = plus.screen.getCurrentSize(); ww = windows_info.resolutionWidth hh = windows_info.resolutionHeight // #endif console.log(“窗口”,windows_info)


```javascript
uni.showModal({  
    title:'wh',  
    content:JSON.stringify(windows_info)  
})

bug描述:

调试获取到的分辨率是对的,打包安装之后获取的分辨率是错的,一样的代码,没有改动,调试获取的是1280,720,打包安装后的是405,720


更多关于uni-app获取分辨率有差异的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

在其它手机测试过吗?是只有特定手机有此问题还是所有机器上都存在此问题?

更多关于uni-app获取分辨率有差异的实战教程也可以访问 https://www.itying.com/category-93-b0.html


调试的时候 是全屏显示的,打包安装以后,就是居中显示 两边黑屏,和各自获取到的分辨率一样,其他手机不会

是什么问题呀

特定机器 香橙派zero3, 他实际也是1280 720,调试的时候获取到正确的,全屏显示,打包后安装 就不是全屏,然后发货获取的尺寸是不对的, 其他手机正常 商米的宽屏安卓机子上也正常

应用有没有设置targetSdkVersion?尝试去掉此配置试下。

回复 DCloud_App_Array: 没有配置这个,然后配置了31 32 也是不行,那个香橙派zero3 是安卓12的

在uni-app中获取分辨率出现差异的问题,主要是由于不同API获取的维度不同导致的。从你的代码来看,调试时使用的是uni.getWindowInfo(),而打包后使用的是plus.screen.getCurrentSize(),这两个API有以下区别:

  1. uni.getWindowInfo()获取的是逻辑像素(与CSS像素一致),会受设备DPR(设备像素比)影响
  2. plus.screen.getCurrentSize()获取的是物理像素,不受DPR影响

解决方案建议统一使用uni.getSystemInfoSync()uni.getWindowInfo()来获取分辨率,保持一致性。修改代码如下:

const systemInfo = uni.getSystemInfoSync()
const ww = systemInfo.windowWidth
const hh = systemInfo.windowHeight

// 或者使用uni.getWindowInfo()
const windowInfo = uni.getWindowInfo()
const ww = windowInfo.windowWidth
const hh = windowInfo.windowHeight
回到顶部