如何防止ios11中的屏幕记录

如何防止ios11中的屏幕记录,ios,screen,ios11,replaykit,Ios,Screen,Ios11,Replaykit,出于某些原因,我们的应用程序不希望人们录制屏幕,但在ios11中,一个新功能可以让用户录制iphone屏幕,所以是否有API或通知指示我用户正在录制 非常感谢您可以检测屏幕是否正在录制: UIScreen.main.isCaptured //如果捕获此屏幕(例如录制、播放、镜像等),则为True 您不能使用项目设置阻止它,但可以使用模式或其他方式请求用户禁用它。不确定提交AppStore后会如何解决此问题。您可以在iOS 11中使用kvo observeUIScreenCaptureDddCh

出于某些原因,我们的应用程序不希望人们录制屏幕,但在ios11中,一个新功能可以让用户录制iphone屏幕,所以是否有API或通知指示我用户正在录制
非常感谢

您可以检测屏幕是否正在录制:

UIScreen.main.isCaptured
//如果捕获此屏幕(例如录制、播放、镜像等),则为True

您不能使用项目设置阻止它,但可以使用模式或其他方式请求用户禁用它。不确定提交AppStore后会如何解决此问题。

您可以在iOS 11中使用kvo observe
UIScreenCaptureDddChangeNotification
,如下所示

NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
    [[NSNotificationCenter defaultCenter] addObserverForName:UIScreenCapturedDidChangeNotification object:nil queue:mainQueue usingBlock:^(NSNotification * _Nonnull note) { 
 //code you want execute
}];

你不能完全阻止这一切。即使苹果允许禁用录音,越狱手机可能会绕过它,并且在一天结束时,用相机记录屏幕总是可能的。我现在不考虑越狱,你知道ios11有这样一个API吗?不知道。我已经很久没有和苹果打过交道了。这不仅是屏幕截图,也是airplay的镜像。所以不是精确的解决方案。我知道,这就是为什么我添加了一条注释来反映它。值得注意的是,我在测试中多次看到该值返回错误的结果。我们经常会遇到一个bug,其中我们正在使用屏幕录制,但isCaptured返回false。我如何检测低于ios 11???@WongSam如果这是解决您问题的正确答案,请不要忘记接受它(绿色勾号是);)这不是KVO.allenh,您不需要或不想要KVO。通知观察员是正确的。