iOS開發之APP進入後臺禁止自動截圖

iOS在7.0以後,APP進入後臺後會把當前APP的Window狀態記錄,並對Window進行截圖操作,會在APP的Sandbox的Library\Caches\Snapshots\xxxx.xxx.xxx文件夾中增加以下幾個文件。這有可能會造成用戶敏感數據的泄密。
UIApplicationAutomaticSnapshotDefault-LandscapeLeft.png
UIApplicationAutomaticSnapshotDefault-LandscapeRight.png
[email protected]
[email protected]



解決辦法:
1.將文件夾清空後設置爲只讀,文件將不能被寫入。本方法需要越獄情況下使用。

system("chmod 444 Library\Caches\Snapshots\xxxx.xxx.xxx\* -R");


2.重寫UIApplication的_saveSnapshotWithName。本方法需要越獄情況下使用。



@interface UIApplication(NoSaveSnapshotWithName)

-(void) _saveSnapshotWithName:(NSString *)name;

@end

@implementation UIApplication
-(void) _saveSnapshotWithName:(NSString *)name
{
return;
}

@end


3.在applicationDidEnterBackground時,將window的hidden屬性設置爲YES,
在applicationWillEnterForeground時,將window的hidden屬性設置爲NO。
此時的截圖將會是一片黑色,什麼也看不到。如果不喜歡黑色,在window中添加一個全屏的Subview就可以設置自己想要的內容。


//- (void)applicationWillResignActive:(UIApplication *)application
//{
// self.window.hidden = YES;
//}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
self.window.hidden = YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
self.window.hidden = NO;
}

//- (void)applicationDidBecomeActive:(UIApplication *)application
//{
// self.window.hidden = NO;
//}


補充,如果要在兩次點擊HOME鍵或者四指收起時也讓畫面全%E



--------------------------------------------------------------------------------------

- 版權聲明:

- 如在本頁面內無特別說明,本文內容均爲[李大仁博客]原創,本文版權歸[李大仁博客]所有。

- 歡迎轉載,轉載請務必在文章頁面明顯位置提供原文鏈接並註明出處。歡迎您在轉載本文時保留本段聲明。

- 文章標題:iOS開發之APP進入後臺禁止自動截圖

- 獨立博客:李大仁博客

- 永久鏈接:http://www.lidaren.com/archives/1473

--------------------------------------------------------------------------------------

以上內容由博客自動發佈工具自動發佈,最終顯示內容和效果會與原文內容有所偏差,敬請諒解。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章