【问题标题】:how to prevent screen record in ios11ios11如何防止录屏
【发布时间】:2017-07-30 16:16:30
【问题描述】:

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

【问题讨论】:

  • 您无法完全阻止这种情况。即使 Apple 允许禁用录制功能,越狱手机也可能会绕过它,而且在一天结束时,总是可以使用摄像头录制屏幕。
  • 我现在不考虑越狱,你知道ios11有这样的API吗?
  • 没有。我已经很久没有和苹果打交道了。

标签: ios screen ios11 replaykit


【解决方案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。通知观察者是正确的。
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2019-10-20
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多