Как определить, когда RPSystemBroadcastPickerView отклонен?

В приложении я использую RPSystemBroadcastPickerView начать общесистемную запись экрана. Мне нужно отреагировать на пользователя, начиная запись экрана или отклоняя показанное окно выбора. В обоих случаях системное представление отклоняется.

Я предполагал, что отклонение представления системы выбора вызовет viewDidAppear событие на текущем показанном контроллере представления. Такого не бывает. Я пытался проверить, если AppDelegate триггеры applicationDidBecomeActive или же applicationWillEnterForeground - снова безуспешно (это срабатывает, когда пользователь открывает центр управления).

У кого-нибудь есть предложения, что еще попробовать?

2 ответа

До iOS 13: крючокRPSystemBroadcastPickerView containerVC

iOS 14.0 или новее: отслеживайте события фокуса и расфокусировки приложения.

Вы можете добиться этого косвенно, используя Timer а также UserDefaults.

Начать Timer в ViewController из основного приложения и проверьте изменение соответствующего значения с Broadcast Extension.

 class SampleHandler: RPBroadcastSampleHandler {

    override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
       appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStarted.rawValue)
    }

    override func broadcastFinished() {
       appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStopped.rawValue)
    }
    
 }
Другие вопросы по тегам