繼之前接到電話含友、短信和截屏監(jiān)聽需求之后,在 iOS 11.0 系統(tǒng)之上新增了屏幕錄制的新功能玩法校辩,所以也隨之迎來了新的屏幕錄制監(jiān)聽的需求窘问,即防錄屏功能監(jiān)聽 。宜咒。惠赫。
通過官方文檔得知 capturedDidChangeNotification 方法可以捕獲屏幕狀態(tài)發(fā)生變化時發(fā)送的通知,故借此方法展開監(jiān)聽的操作荧呐,具體 code 如下:
一汉形、方法實(shí)現(xiàn)
#pragma mark - 監(jiān)聽錄制
/**
監(jiān)聽屏幕錄制
iOS 11.0 版本以上
*/
- (void)monitorRecordVideo {// 監(jiān)聽屏幕錄制
kWeakSelf(self);
// 監(jiān)測設(shè)備的錄制狀態(tài)
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 之后新增纸镊,所以要添加系統(tǒng)版本的判定,避免不必要的意外狀況發(fā)生概疆。
二逗威、方法調(diào)用
在所需要的頁面或地方直接調(diào)用該方法即可,頁面中可以在 viewWillAppear 或 viewDidLoad 方法中都 ok岔冀。
[self monitorRecordVideo];// 防錄屏監(jiān)聽
電話狀態(tài)監(jiān)聽 - iOS
短信狀態(tài)監(jiān)聽 - iOS
截屏狀態(tài)監(jiān)聽 - iOS
以上便是此次分享的內(nèi)容,希望內(nèi)容能對大家實(shí)際有所幫助,有什么不足之處歡迎指點(diǎn)共同進(jìn)步!