How to disable screen Recording in iOS app

2020-06-18 16:11发布

Is there any way to disable the screen recording? or is is possible through a configuration profile? or any third party library is available?

3条回答
看我几分像从前
2楼-- · 2020-06-18 16:28
NotificationCenter.default.addObserver(self, selector: #selector(preventScreenRecording), name: NSNotification.Name.UIScreenCapturedDidChange, object: nil)

And create a view inside main view and prevent like that.

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

    if (isCaptured) {
        self.blockView.hidden = false;
    }
    else {
        self.blockView.hidden = true;
    }
}
查看更多
一纸荒年 Trace。
3楼-- · 2020-06-18 16:33

When your app is started you can test UIScreen.isCaptured property and show some splash screen if it's set to true.

You should also observe (subscribe in some place for) capturedDidChangeNotification notification, and do same thing (show splash screen) if UIScreen.isCaptured is set to true.

查看更多
男人必须洒脱
4楼-- · 2020-06-18 16:43
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
查看更多
登录 后发表回答