ios11如何防止录屏
Posted
技术标签:
【中文标题】ios11如何防止录屏【英文标题】:how to prevent screen record in ios11 【发布时间】:2017-07-30 16:16:30 【问题描述】:由于某些原因,我们的 APP 不希望人们录屏,但是在 ios11 中有一个新功能可以让用户在那里录屏 iphone 屏幕,所以是否有 API 或通知指示我用户正在录屏 非常感谢你
【问题讨论】:
您无法完全阻止这种情况。即使 Apple 允许禁用录制功能,越狱手机也可能会绕过它,而且在一天结束时,总是可以使用摄像头录制屏幕。 我现在不考虑越狱,你知道ios11有这样的API吗? 没有。我已经很久没有和苹果打交道了。 【参考方案1】:您可以通过以下方式检测屏幕是否正在录制:
UIScreen.main.isCaptured
// True if this screen is being captured (e.g. recorded, AirPlayed, mirrored, etc.)
您无法使用项目设置来阻止它,但您可以使用模式或其他东西来请求用户禁用它。不确定您提交的 AppStore 会如何解决。
【讨论】:
这不仅是屏幕截图,还可以通过airplay进行镜像。所以不是确切的解决方案。 我知道,这就是我添加评论以反映它的原因 值得注意的是,我在测试中多次看到这个值返回了错误的结果。我们经常遇到一个错误,即我们正在使用屏幕录制但 isCaptured 返回 false。 如何检测低于 ios 11 的情况?? @WongSam 如果这是解决您问题的正确答案,请不要忘记接受它(绿色勾号);)【参考方案2】:你可以像这样在 iOS 11 中使用 kvo observe UIScreenCapturedDidChangeNotification
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
[[NSNotificationCenter defaultCenter] addObserverForName:UIScreenCapturedDidChangeNotification object:nil queue:mainQueue usingBlock:^(NSNotification * _Nonnull note)
//code you want execute
];
【讨论】:
那不是 KVO。 allenh,你不需要也不想要 KVO。通知观察者是正确的。以上是关于ios11如何防止录屏的主要内容,如果未能解决你的问题,请参考以下文章