繼之前接到電話、短信和截屏監聽需求之后,在 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];// 防錄屏監聽
以上便是此次分享的內容,希望內容能對大家實際有所幫助,有什么不足之處歡迎指點共同進步!
