#ios #react-native #expo #screen-orientation
Вопрос:
Я работаю над проектом IOS React Native (используя expo с простым рабочим процессом). По умолчанию мое приложение использует портретный режим, но иногда мне нужно изменить ориентацию экрана на альбомный режим. Я использую библиотеку expo-screen-orientation для изменения ориентации экрана. Когда приложение меняет ориентацию экрана, у меня возникает проблема в выпущенном приложении, хотя в режиме отладки оно работает идеально (как симулятор IOS, так и устройство IOS). В режиме выпуска у меня проблема с вырезанным экраном. Пожалуйста, проверьте фотографии в приложении
import { StatusBar } from 'expo-status-bar';
import {StyleSheet, Text, View, Button} from 'react-native';
import * as ScreenOrientation from 'expo-screen-orientation';
export default function App() {
const foo = async()=>{
await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE_LEFT);
}
return (
<View style={styles.container}>
<Text style={{paddingTop:50}}>Open up App.js to start working on your app!</Text>
<Button title="Rotate" onPress={foo}/>
<StatusBar style="auto" />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#cccccc',
alignItems: 'center',
justifyContent: 'flex-start',
},
});
Ландшафтный режим с вырезанным экраном
Ответ №1:
Произошла ошибка с expo-обновлениями с expo SDK 43, вам нужно будет обновить expo-updates до версии 0.10.15 в вашем package.json, затем установить npm и запустить pod install. Это устранило проблему для меня. Другие отметили, что понижение expo до SDK 42 также исправило ситуацию.
Дополнительная информация здесь: https://github.com/expo/expo/issues/14967#issuecomment-966811190
Комментарии:
1. Я обновил expo-обновления до 0.10.15, и теперь проблема исчезает. Спасибо за быстрый ответ