uni-app 页面强制横屏后,使用uni.previewImage会先竖屏然后再横屏放大图片

uni-app 页面强制横屏后,使用uni.previewImage会先竖屏然后再横屏放大图片

开发环境 版本号 项目创建方式
Mac MacBook Pro (Retina, 15-inch, Mid 2015) HBuilderX

示例代码:

onLoad(option){  
    // #ifdef APP-PLUS  
        plus.screen.lockOrientation('landscape-primary');  
    // #endif  
},  
methods: {  
     preview(index){  
            uni.previewImage({  
                urls:this.list,  
                current:index,  
            })  
        },  
}

操作步骤:

onLoad(option){  
    // #ifdef APP-PLUS  
        plus.screen.lockOrientation('landscape-primary');  
    // #endif  
},  
methods: {  
     preview(index){  
            uni.previewImage({  
                urls:this.list,  
                current:index,  
            })  
        },  
}

预期结果:

横屏 preview Image

实际结果:

先竖屏,后横屏

更多关于uni-app 页面强制横屏后,使用uni.previewImage会先竖屏然后再横屏放大图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

没有人管么

更多关于uni-app 页面强制横屏后,使用uni.previewImage会先竖屏然后再横屏放大图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html


收到 我们尝试复现一下

这是一个已知的 uni-app 在 App 平台上的兼容性问题。uni.previewImage 在调用时会触发系统相册组件,该组件会短暂重置屏幕方向,导致出现先竖屏再横屏的闪烁现象。

解决方案:

  1. 使用条件编译锁定方向
    onShow 生命周期中重新锁定横屏,确保预览器退出后恢复横屏:

    onShow() {
      // #ifdef APP-PLUS
      plus.screen.lockOrientation('landscape-primary');
      // #endif
    }
    
  2. 使用原生图片预览替代方案
    如果追求体验一致性,可改用 plus.nativeUI.previewImage(需注意 API 差异):

    // #ifdef APP-PLUS
    plus.nativeUI.previewImage(this.list, { current: index });
    // #endif
回到顶部