最近,客戶要求在”在線考試“功能中加入防舞弊相關(guān)的修改炎功。其中主要有2點(diǎn):
1.禁止進(jìn)入后臺(tái)蛇损;
2.禁止復(fù)制試題州藕,禁止截屏酝陈;
解決思路:
1沉帮、禁止進(jìn)入后臺(tái),根本不可能待牵。解決方法是缨该,監(jiān)測(cè)應(yīng)用進(jìn)入后臺(tái)次數(shù)贰拿,應(yīng)用進(jìn)入后臺(tái)超過(guò)三次視為違規(guī)操作;應(yīng)用再次進(jìn)入前臺(tái)視為交卷妙真。
2珍德、禁止復(fù)制試題很簡(jiǎn)單锈候,禁止截屏功能經(jīng)過(guò)調(diào)研晴及,企業(yè)賬號(hào)可以通過(guò)配置文件達(dá)到效果文檔在這里嫡锌,個(gè)人賬號(hào)面談势木;又考慮在截屏照片存入相冊(cè)之前去圖片進(jìn)行模糊處理啦桌,但是通知只有UIApplicationUserDidTakeScreenshotNotification甫男,接收到回調(diào)圖片已經(jīng)放在相冊(cè)里了验烧;最后碍拆,經(jīng)過(guò)小伙伴們提示感混,是不是可以生成后刪除這張截圖即可弧满,刪除可以,iOS8得到相冊(cè)權(quán)限后滑进,就可以刪郊供,但是會(huì)有提示驮审,你可以選擇不刪.......無(wú)奈之下疯淫,就按照禁止進(jìn)入后臺(tái)的邏輯做了
涉及代碼
//監(jiān)聽(tīng)截屏事件
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotAction) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
//刪除對(duì)應(yīng)相冊(cè)最新的照片
PHFetchResult *collectonResuts = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:[PHFetchOptions new]] ;
[collectonResuts enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
PHAssetCollection *assetCollection = obj;
//你想進(jìn)入的相冊(cè)
if ([assetCollection.localizedTitle isEqualToString:@"Camera Roll"] || [assetCollection.localizedTitle isEqualToString:@"相機(jī)膠卷"]) {
PHFetchResult *assetResult = [PHAsset fetchAssetsInAssetCollection:assetCollection options:[PHFetchOptions new]];
[assetResult enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ //獲取相冊(cè)的最后一張照片
if (idx == [assetResult count] - 1) {
[PHAssetChangeRequest deleteAssets:@[obj]];
}
} completionHandler:^(BOOL success, NSError *error) { NSLog(@"Error: %@", error);
}];
}];
}
}];