从多任务处理回来时,防止应用程序的快照视图

Har*_*ris 11 iphone passwords screenshot multitasking

问题是这个 - 我的应用程序允许您密码保护自己.我使用的界面就像保护手机的密码一样.这一直很好,直到多任务出现.

密码保护仍然有效,但有一个问题.Apple做了一些特别的事情,让它看起来像我们的应用程序在从后台返回时加载速度更快.操作系统在用户离开应用程序之前拍摄了我们的屏幕图片,并显示该应用程序的其余部分仍在加载.

这导致的问题是,有人试图访问我的应用程序会在密码保护启动之前看到屏幕图像.当然,它并不多,但我不认为我的用户会喜欢人们能够的想法甚至可以瞥一眼他们的数据.

如何阻止快照图像显示?

Har*_*ris 15

我解决了这个问题 这是解决方案:

- (void)applicationDidEnterBackground:(UIApplication *)application{
    if (appHasPasscodeOn){
        UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
        splashView.image = [UIImage imageNamed:@"Default.png"];
        [window addSubview:splashView];
        [splashView release];
    }
}
Run Code Online (Sandbox Code Playgroud)

Default.png是我的应用程序的屏幕截图,有一个空白屏幕(对我而言,它只是一个空白列表视图).上面的代码在应用程序进入后台之前将它放在我的真实视图前面.所以,当你回到应用程序时,就是你所看到的.瞧.

  • 我相信Apple的文档说在applicationDidEnterBackground中执行此操作:applicationWillResignActive:也会在许多其他时间被调用,在此期间这可能不合适.(在系统警报,调用多任务UI等时) (2认同)