uniapp云打包成app后,在Android12手机上横屏样式未填满手机界面;在ios手机上横屏不生效;问题解决

393 阅读1分钟

问题1:横屏在本地调试时是好的,云打包后在Android12上横屏样式宽度就只生效了一半。

解决:在onLoad中,定时500ms后再进行横屏操作(200ms不生效)

onLoad(option) {
	// #ifdef APP-PLUS
	setTimeout(() => {
		plus.screen.unlockOrientation();//解除屏幕方向的锁定,但是不一定是竖屏;
		lus.screen.lockOrientation('landscape-primary');
	}, 500)
	// #endif
},

问题2:云打包后在ios中横屏不生效。

解决:在manifest.json文件中的app-plus下、app-plus中的distribute下都添加横竖屏设置代码,之前只在distribute下添加,本地调试时android、ios都能生效,云打包后ios就失效了

"app-plus" : {
    /* 横竖屏设置 */
    "screenOrientation" : [ "portrait-primary", "landscape-primary" ],
    "distribute" : {
        "screenOrientation" : [ "portrait-primary", "landscape-primary" ],
    }
}

Android12在横屏返回后的部分界面,会出现宽度拉伸至屏幕之外的情况

试了好几种方法,都没解决,最后在界面最外层加了个属性style="",就解决了这个问题,我也不知道这是什么原理。

补充:

ios之前在本地调试时还出现横屏完全不生效的情况,最后发现是ios基座版本太老的原因,更新基座就正常了。