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中,开屏广告通常由原生模块控制,会暂时覆盖应用设置的屏幕方向。

解决方案:

  1. 延迟设置横屏:在开屏广告结束后再设置横屏方向
// 在App.vue的onLaunch中
setTimeout(() => {
    plus.screen.lockOrientation('landscape-primary');
}, 100); // 适当延迟确保广告完全关闭
  1. 监听广告事件:如果使用uni-ad广告插件,可以监听广告关闭事件
// 监听开屏广告关闭
uni.onNativeAdClose(() => {
    plus.screen.lockOrientation('landscape-primary');
});
  1. 检查manifest配置:确保在manifest.json中正确配置了横屏方向
{
    "app-plus": {
        "screenOrientation": ["landscape-primary", "landscape-secondary"]
    }
}
  1. iOS特定处理:iOS对屏幕方向控制较严格,可能需要额外处理
// 针对iOS的强制横屏
if (uni.getSystemInfoSync().platform === 'ios') {
    plus.screen.lockOrientation('landscape');
}
回到顶部