#swift #react-native #screen-orientation
Вопрос:
Мое приложение работает в ПОРТРЕТНОМ режиме, если только оно не воспроизводит поток или видео. Поэтому я использую SDK для iOS для воспроизведения потоков, и мне пришлось контролировать ориентацию в Swift.
Теперь я также хочу использовать «react-native-video-controls» для воспроизведения сохраненных видео, но как только я проигрываю видео, оно блокируется в ПОРТРЕТНОМ режиме (с Swift).
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate, MessagingDelegate {
var deviceOrientation = UIInterfaceOrientationMask.portrait
func application(_ application:UIApplication, supportedInterfaceOrientationsFor window:UIWindow?) -> UIInterfaceOrientationMask {
return deviceOrientation
}
class PlayerViewController: UIViewController, UIApplicationStateObserver, SldpEngineDelegate {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(false)
appDelegate.deviceOrientation = .all
let value = UIInterfaceOrientationMask.all.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
appDelegate.deviceOrientation = .portrait
let value = UIInterfaceOrientation.portrait.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}
Приведенный выше код отлично работает для SDK, но теперь Orientation.unlockAllOrientations()
не влияет на react-native, так как ориентация была определена в Swift (я думаю).
Итак, мой вопрос: есть ли способ определить, активен ли ViewController из react-native, или есть способ переопределить ориентацию из React? Или какой-либо другой способ разблокировать ориентации в «элементах управления собственным видео»?
Заранее спасибо