You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Expo开发React Native应用:如何设置始终横屏运行?

解决Expo React Native强制横屏的问题

1. 修正API导入与调用方式

你的报错根源是expo-screen-orientation的API并非嵌套在ScreenOrientation对象下,而是直接导出的独立方法。按以下方式修改代码即可解决:

先确认已正确安装依赖:

npx expo install expo-screen-orientation

然后更新App.js中的代码:

import { useEffect } from 'react';
import { lockAsync, OrientationLock } from 'expo-screen-orientation';

export default function App() {
  useEffect(() => {
    const lockScreenOrientation = async () => {
      try {
        await lockAsync(OrientationLock.LANDSCAPE_LEFT);
      } catch (error) {
        console.error('屏幕方向锁定失败:', error);
      }
    };

    lockScreenOrientation();
  }, []);

  // 此处放置你的应用组件内容
  return (
    // ...
  );
}

2. Android平台权限配置

针对Android设备,需要在app.json中添加必要权限,确保方向锁定功能正常工作:

{
  "expo": {
    // 其他项目配置
    "android": {
      "permissions": ["android.permission.SYSTEM_ALERT_WINDOW"]
    }
  }
}

3. 全局启动方向配置(可选)

如果希望应用启动时直接以横屏模式打开,可以在app.json中设置全局默认方向,配合代码锁定实现双重保障:

{
  "expo": {
    "orientation": "landscape",
    // 其他项目配置
  }
}

4. 异常处理说明

通过try/catch包裹异步操作,既能避免控制台出现未处理Promise拒绝的警告,也能快速定位方向锁定失败的具体原因(比如权限缺失、设备限制等)。

内容的提问来源于stack exchange,提问作者Ayo Adesina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:55:37