Почему не отображаются уведомления для приложения, которое становится фоновым или становится неактивным, вызывая AirPlay при отображении пользовательского экрана? - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь получать фоновые и неактивные уведомления с включенным AirPlay. Экран не зеркальный, поскольку я создаю новое окно, назначаю ему контроллер представления root, настраиваю его экран для объекта экрана, полученного из уведомления UIScreen.didConnectNotification, и устанавливаю его свойство isHidden на false.

Примерно так:

NotificationCenter.default.addObserver(
  forName: UIScreen.didConnectNotification,
  object: nil,
  queue: .main,
  using: { [weak self] (notification) in
    guard let screen = notification.object as? UIScreen else {
      return
    }

    let window = UIWindow(frame: CGRect(origin: .zero, size: screen.bounds.size))
    window.screen = screen
    window.rootViewController = ViewController()
    window.isHidden = false

    self?.windowReference = window
  }
)

Однако, когда AirPlay включен, я больше не получаю уведомления даже на уровне AppDelegate, когда приложение является фоновым или становится неактивным. Самым странным является то, что уведомление willResignActive (или через AppDelegate) вызывается при выводе приложения на передний план.

Я также заметил, что если я оставлю это AirPlay, чтобы просто зеркально отобразить экран, не создавая новое окно, все работает правильно.

Есть идеи? Спасибо.

...