Как отключить запись экрана в приложении iOS - PullRequest
0 голосов
/ 21 декабря 2018

Есть ли способ отключить запись экрана?или возможно через профиль конфигурации?или какая-нибудь сторонняя библиотека доступна?

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018
NotificationCenter.default.addObserver(self, selector: #selector(preventScreenRecording), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil)

И создайте вид внутри основного вида и предотвратите подобное.

(void) preventScreenRecording {
if (@available(iOS 11.0, *)) {
    BOOL isCaptured = [[UIScreen mainScreen] isCaptured];

    if (isCaptured) {
        self.blockView.hidden = false;
    }
    else {
        self.blockView.hidden = true;
    }
}
0 голосов
/ 21 декабря 2018

Когда ваше приложение запущено, вы можете протестировать свойство UIScreen.isCaptured и показать заставку, если оно установлено на true.

Вы также должны наблюдать (подписаться в каком-то месте) capturedDidChangeNotification уведомить и сделать то же самое (показать заставку), если UIScreen.isCaptured установлено на true.

0 голосов
/ 21 декабря 2018
sharedRecorder.stopRecording( handler: { previewViewController, error in    
    if let error = error {
        print("\(error.localizedDescription)")
    }
    if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad {
        previewViewController?.modalPresentationStyle = UIModalPresentationStyle.popover
        previewViewController?.popoverPresentationController?.sourceRect = CGRect.zero
        previewViewController?.popoverPresentationController?.sourceView = self.view
    }
    if previewViewController != nil {
        self.previewViewController = previewViewController
        previewViewController?.previewControllerDelegate = self
    }
    self.present(previewViewController!, animated: true, completion: nil)
    })
    return
}



https://developer.apple.com/documentation/replaykit/rpscreenrecorder/1620990-stoprecording
...