【问题标题】:secure displayed data when going to background : applicationDidEnterBackground进入后台时保护显示的数据:applicationDidEnterBackground
【发布时间】:2023-04-08 17:13:01
【问题描述】:

我的应用程序处理敏感数据,我希望一旦用户进入后台,视图上显示的数据就会完全隐藏。我试图通过将视图置于所有其他视图之上来实现这一点:

[self.window addSubview:self.someShieldView];

我也试过了,

[self topViewController].view.hidden = YES;

我在 AppDelegate 里做这个

- (void)applicationDidEnterBackground:(UIApplication *)application

iPhoneAppProgrammingGuide.pdf第51页推荐的那样

.....当 applicationDidEnterBackground: 方法返回时, 系统会为您的应用程序的用户界面拍照并使用 过渡动画的结果图像。如果您的任何意见 界面包含敏感信息,应隐藏或修改 applicationDidEnterBackground: 方法返回之前的那些视图

但我仍然可以在几秒钟内看到我的视图及其数据。如何确保我的视图隐藏在“盾牌”后面?

我关注了这篇文章,但无法实现我想要的。

Delay applicationDidEnterBackground screen capture

我做错了什么?

注意:另一种选择是不支持多任务,但我确实想支持多任务。

【问题讨论】:

  • “我仍然可以在几秒钟内看到我的视图及其数据”是什么意思
  • 我的意思是,我想要隐藏的视图控制器中的安全数据,当我从后台返回时,它会显示几秒钟。

标签: ios iphone


【解决方案1】:

在摸索了一段时间后,我想我可能已经找到了问题所在。

您面临的问题仅发生在模拟器中。在物理设备(我使用 iphone5s 测试)上,如果您在 applicationDidEnterBackground 中隐藏视图,则临时屏幕截图不会显示隐藏视图。

这是我的全部代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window makeKeyAndVisible];
    self.window.backgroundColor = [UIColor redColor]; // this is your secure content
    return YES;
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    self.window.hidden = YES; // this is where you will hide/mask your content
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多