继之前接到电话、短信和截屏监听需求之后,在 iOS 11.0 系统之上新增了屏幕录制的新功能玩法,所以也随之迎来了新的屏幕录制监听的需求,即防录屏功能监听 。。。
通过官方文档得知 capturedDidChangeNotification 方法可以捕获屏幕状态发生变化时发送的通知,故借此方法展开监听的操作,具体 code 如下:
一、方法实现
#pragma mark - 监听录制
/**
监听屏幕录制
iOS 11.0 版本以上
*/
- (void)monitorRecordVideo {// 监听屏幕录制
kWeakSelf(self);
// 监测设备的录制状态
if (@available(iOS 11.0, *)) {
[[NSNotificationCenter defaultCenter] addObserverForName:UIScreenCapturedDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
NSLog(@"屏幕录制 ...");
[weakself showPromptWarningView];
}];
} else {
// Fallback on earlier versions
}
}
/**
提示视图
*/
- (void)showPromptWarningView {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"请勿录制"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"确定", nil];
[alertView show];
}
注:因该方法是 iOS 11.0 之后新增,所以要添加系统版本的判定,避免不必要的意外状况发生。
二、方法调用
在所需要的页面或地方直接调用该方法即可,页面中可以在 viewWillAppear 或 viewDidLoad 方法中都 ok。
[self monitorRecordVideo];// 防录屏监听
电话状态监听 - iOS
短信状态监听 - iOS
截屏状态监听 - iOS
以上便是此次分享的内容,希望内容能对大家实际有所帮助,有什么不足之处欢迎指点共同进步!
网友评论