由于某些原因,我们的应用程序不希望用户录制屏幕,但在iOS 11中,有一个新功能可以允许用户录制他们的iPhone屏幕。那么是否有一个API或通知可以告诉我用户现在正在录制呢?非常感谢。
您可以使用以下代码检测屏幕是否正在录制:
UIScreen.main.isCaptured
// True if this screen is being captured (e.g. recorded, AirPlayed, mirrored, etc.)
您无法通过项目设置来防止这种情况发生,但是您可以使用模态框或其他方式请求用户禁用它。不确定这对您的AppStore提交会有什么影响。
在iOS 11中,您可以像这样使用KVO观察UIScreenCapturedDidChangeNotification
NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
[[NSNotificationCenter defaultCenter] addObserverForName:UIScreenCapturedDidChangeNotification object:nil queue:mainQueue usingBlock:^(NSNotification * _Nonnull note) {
//code you want execute
}];