iOS在7.0以后,APP进入后台后会把当前APP的Window状态记录,并对Window进行截图操作,会在APP的Sandbox的Library\Caches\Snapshots\xxxx.xxx.xxx文件夹中增加以下几个文件。这有可能会造成用户敏感数据的泄密。
UIApplicationAutomaticSnapshotDefault-LandscapeLeft.png
UIApplicationAutomaticSnapshotDefault-LandscapeRight.png
UIApplicationAutomaticSnapshotDefault-LandscapeLeft@2x.png
UIApplicationAutomaticSnapshotDefault-LandscapeRight@2x.png
解决办法:
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
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
转载请注明原文地址: https://ju.6miu.com/read-1308046.html