Я пытаюсь получать фоновые и неактивные уведомления с включенным 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, чтобы просто зеркально отобразить экран, не создавая новое окно, все работает правильно.
Есть идеи? Спасибо.