注意:我知道已经有很多关于这个问题的帖子了。但是它们都有些过时,一个也不能解决问题,因此我发布了一个新的帖子。
问题
iPad无法锁定特定的屏幕方向。
软件包
"expo": "~44.0.0",
"expo-screen-orientation": "^4.1.2",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.3",
(Ands loads of others that arent relevent)
信息
尝试将屏幕定向锁定为横向。有一个问题:在手机上应该是纵向,而在平板电脑上则应该是横向。手机可以正常工作(两种方向都可),但是在平板电脑上似乎无法使其工作。
是的,我确实在app.json
中添加了"requireFullScreen": true
。 并且app.json
不包含orientation
属性(即使使用了这个属性也没有效果)。
有趣的事实 - 尝试将orientation
设置为横向在app.json
中,在iPhone上可以正常工作,但在iPad上却没有任何作用。我仍然可以轻松旋转屏幕。
代码
在最顶层的应用程序(app.js
)中,我创建了一个简单的方法(位于function App()
内):
const foo = async () => {
await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE_LEFT);
};
我称之为:foo();
然后返回(这与问题无关)。请注意,应用程序的导出方式如下:export default registerRootComponent(App);
如果使用 iPhone,它可以正常工作。但是在 iPad 上 - 我可以旋转屏幕(也就是说它没有锁定)。
尝试了许多不同的 iPad(模拟器),但都无法正常工作。
正如先前提到的 - 有很多报告,但似乎都过时或无法工作。