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如何防止录屏的主要内容,如果未能解决你的问题,请参考以下文章

如何为iOS设备制作录屏指导视频

苹果手机怎样录屏 如何录制手机内容

Flutter上线项目实战——防止录屏

Flutter上线项目实战——防止录屏

nubia Z11 mini录屏功能怎么使用技巧

为啥录屏没声音