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