iOS:当应用程序背景时隐藏屏幕上的敏感信息

时间:2012-09-25 18:38:35

标签: ios hipaa backgrounding

当前景应用程序变为后台运行时(例如,按下主页按钮),如何更改最前面的视图控制器之前上的元素,以及iOS为其拍摄快照时的元素并启动动画以显示下一个屏幕?

我问,因为我正在编写一个需要HIPAA合规性的应用程序,我担心操作系统为执行此动画而拍摄的快照有时会包含敏感数据,这些数据应该可见当应用程序在以后被预先考虑时,会暂时停止。

我知道视图控制器有生命周期方法,例如viewWillDisappear可能是可用的,但我有很多控制器,我宁愿在我的App Delegate中有一些东西来处理这个问题(例如通过添加一个不透明的全屏UIImageView覆盖图,而不是必须在每个最后一个控制器中为此编写自定义代码。

我尝试将叠加生成代码放在applicationWillResignActive中,我一直在挖掘Apple的文档和Google,但它没有用。我怀疑截图是在应用有机会更新屏幕之前拍摄的。

谢谢!

2 个答案:

答案 0 :(得分:4)

不确定HIPAA关于后台处理的要求以及可能让用户登录以供其他人恢复,但最安全的声音就是添加一个布尔值为UIApplicationExitsOnSuspend的键YESinfo.plist

这将阻止应用程序完全后台运行,并在每次返回时重新启动它(可能会触发登录过程)。

我测试的大多数(如果不是全部)移动银行应用程序出于安全原因这样做。

答案 1 :(得分:2)

我相信答案是不关心自己在背景动画开始之前改变屏幕上的内容,而是在应用程序进入后台时(即内部)修改屏幕上显示的内容你的App代表中applicationDidEnterBackground:。)这解决了我的问题。

我的UIImageView叠加想法在这里工作,虽然我决定只是弹出到根视图控制器。这样简单。我的根视图没有任何敏感信息。

这是它的样子:

-(void)applicationDidEnterBackground:(UIApplication *)application {

    UINavigationController *navigationController = 
        (UINavigationController *)self.window.rootViewController;
    [navigationController popToRootViewControllerAnimated:NO];

    ...
}