iOS:在应用程序处于后台时隐藏屏幕上的敏感信息

iOS:在应用程序处于后台时隐藏屏幕上的敏感信息,ios,hipaa,backgrounding,Ios,Hipaa,Backgrounding,当前台应用程序背景化时(例如,按下Home按钮),在iOS拍摄它的快照并启动动画以显示下一个屏幕之前,我如何更改最顶层视图控制器上的元素 我之所以这么问是因为我正在编写一个需要符合HIPAA标准的应用程序,我担心操作系统为完成此动画而拍摄的快照有时包含敏感数据,这些数据在应用程序稍后启动时甚至在一瞬间都不可见 我知道视图控制器有一些生命周期方法,比如viewwilldesign,这些方法可能是可用的,但我有很多控制器,我宁愿在我的应用程序委托中有一些东西来处理这个问题(例如,通过添加不透明的全屏

当前台应用程序背景化时(例如,按下Home按钮),在iOS拍摄它的快照并启动动画以显示下一个屏幕之前,我如何更改最顶层视图控制器上的元素

我之所以这么问是因为我正在编写一个需要符合HIPAA标准的应用程序,我担心操作系统为完成此动画而拍摄的快照有时包含敏感数据,这些数据在应用程序稍后启动时甚至在一瞬间都不可见

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

我试着将覆盖生成代码放到应用程序willresignative中,我一直在用苹果的文档和谷歌进行挖掘,但它不起作用。我怀疑截图是在应用程序有机会更新屏幕之前拍摄的


谢谢

不确定HIPAA关于后台处理和可能让用户登录以供其他人恢复的要求,但最安全的做法似乎是将布尔值为
YES
的键
UIApplicationExitsOnSuspend
添加到
info.plist

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


我测试过的大多数(如果不是全部的话)手机银行应用程序都是出于安全原因而这样做的。

我相信答案是,在背景动画开始之前,不要担心更改屏幕上的内容,而只是在应用程序进入后台后修改屏幕上显示的内容(即,应用程序代理中的
ApplicationIdentinterBackground:
的内部)这解决了我的问题

我的
UIImageView
overlay想法在这里奏效了,不过我决定直接跳到根视图控制器。这样更简单。我的根视图没有任何敏感信息

下面是它的样子:

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

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

    ...
}

您是否尝试过更改
应用程序中的视图将进入前台
?或者,在整个恢复缩放动画完成之前,这也是一个静态动画?好的,它现在正在工作。我不确定这是否是因为我将我的
UIImageView
添加到
self.window
中,而不是将
topViewController
中拉出ode>navigationController并将其添加到那里,或者如果是因为我将代码放在
ApplicationIdentinterBackground
而不是
ApplicationWillResignative
中。无论如何,前景化时不再显示敏感信息。我会尝试深入研究,尽快写一个更简洁的答案,让我回答如果我们不完全关注HIPAA合规性,用户随时可以截图会不会成为一个问题?据我所知,还没有已知的解决方案。好主意,汤米。我们不认为这会成为我们的问题。工作人员将完全控制iPad,并接受关于这个问题的教育,或者将在信息亭中进行关闭,使患者无法访问电源按钮。IIRC,照片应用程序也可以禁止使用安全设置。将不得不研发。这是一个好主意,尽管我已经找到了一个解决方案,可以让我保持背景。但作为最后的手段,这很好。