Невозможно изменить ориентацию с React-native после ее определения в Swift

#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? Или какой-либо другой способ разблокировать ориентации в «элементах управления собственным видео»?

Заранее спасибо