iOS开发之APP进入后台禁止自动截图

    xiaoxiao2026-03-17  6

    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
    最新回复(0)