uni-app 开启开屏广告和设置强制横屏后不会横屏
uni-app 开启开屏广告和设置强制横屏后不会横屏
示例代码:
plus.screen.lockOrientation('landscape-primary'); //锁定
操作步骤:
- 开启开屏广告,打开app
预期结果:
- 自动横屏
实际结果:
- 出现广告不横屏
bug描述:
开启开屏广告和设置强制横屏,不会横屏,双击电源键缩到任务列表才会横屏
| 信息类别 | 信息内容 |
|----------------|--------------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | window10 |
| HBuilderX类型 | Alpha |
| HBuilderX版本号 | 3.2.1 |
| 手机系统 | iOS |
| 手机系统版本号 | IOS 14 |
| 手机厂商 | 苹果 |
| 手机机型 | ipad,iphonx |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 开启开屏广告和设置强制横屏后不会横屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 开启开屏广告和设置强制横屏后不会横屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的开屏广告与屏幕方向控制冲突问题。在uni-app中,开屏广告通常由原生模块控制,会暂时覆盖应用设置的屏幕方向。
解决方案:
- 延迟设置横屏:在开屏广告结束后再设置横屏方向
// 在App.vue的onLaunch中
setTimeout(() => {
plus.screen.lockOrientation('landscape-primary');
}, 100); // 适当延迟确保广告完全关闭
- 监听广告事件:如果使用uni-ad广告插件,可以监听广告关闭事件
// 监听开屏广告关闭
uni.onNativeAdClose(() => {
plus.screen.lockOrientation('landscape-primary');
});
- 检查manifest配置:确保在manifest.json中正确配置了横屏方向
{
"app-plus": {
"screenOrientation": ["landscape-primary", "landscape-secondary"]
}
}
- iOS特定处理:iOS对屏幕方向控制较严格,可能需要额外处理
// 针对iOS的强制横屏
if (uni.getSystemInfoSync().platform === 'ios') {
plus.screen.lockOrientation('landscape');
}

