收藏
回答

横屏小程序偶然情况下获取到屏幕宽度是竖屏状态的宽度

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.27 2.25.4

首页配置为横屏模式,打开小程序有时获取到的设备屏幕宽度是竖屏状态的屏幕宽度。

开发者工具模拟器测试不出这个问题,在真机(iPhone13 390×844)测试时,大部分情况获取到的都是正常的844,偶然情况下获取到的是390

第一次打开小程序时发生的概率很大。另外就是通过右上角“⋯”、“重新进入小程序”反复重启也有很大概率出现。

// pages/index/index.json
//配置页面默认横屏模式
{
  "pageOrientation": "landscape"
}


// pages/index/index.js
const app = getApp()
Page({
  data: {
    screen_w:0
  },
  onLoad() {
    wx.getSystemInfo({
      success: (res) => {
          this.setData({
              screen_w:res.screenWidth
          })
      },
    })
  },
})


<!-- pages/index/index.wxml -->
<view>获取到的宽:{{screen_w}}</view>



真机截图:


回答关注问题邀请回答
收藏

4 个回答

  • 熊💫
    熊💫
    2022-08-30



    2022-08-30
    有用 1
    回复
  • A Riber²⁰²⁰
    A Riber²⁰²⁰
    2023-06-09

    每次必会复现这个问题:进入横屏页面后,点击右上角关闭小程序,竖屏状况下进入页面就是错乱的了

    2023-06-09
    有用
    回复 1
    • A Riber²⁰²⁰
      A Riber²⁰²⁰
      2023-06-09
      现在可以了 把需要的位置信息存储到本地,因为整个页面是横屏的 onShow的时候重新赋值一遍
      2023-06-09
      回复
  • momo
    momo
    2023-02-10

    2023年了,请问这个问题解决了吗?

    2023-02-10
    有用
    回复 1
    • 熊💫
      熊💫
      2023-05-09
      很遗憾没解决。。问题也是小概率下发生,横屏小程序就是坑
      2023-05-09
      回复
  • Riven.
    Riven.
    2022-09-13

    试试放到onShow里面来获取?onLoad的时候,可能小程序还处在loading页,整个屏幕并没有转过来

    2022-09-13
    有用
    回复 3
    • 熊💫
      熊💫
      2022-09-14
      onShow获取似乎没问题了,但这个手动获取屏幕宽度值输出只是为了做个演示,还有个最关键的问题是wxss样式表里使用rpx单位,偶尔横屏小程序rpx仍是以竖屏状态时的屏幕宽换算的,导致我在使用background-position和background-size这类样式时出现图像错乱,请教下这种情况该如何解决呢?
      2022-09-14
      回复
    • momo
      momo
      2023-02-10
      楼主有解决方案么?
      2023-02-10
      回复
    • 2023-05-05回复momo
      楼主有解决方案么?
      2023-05-05
      回复
登录 后发表内容