什么时候进行iOS自动屏幕捕获



我正在尝试更改应用程序进入背景时iOS自动捕获的屏幕截图。

但是,我不确定何时拍摄此屏幕截图。

例如:

如果在应用程序中拉下通知栏,则称为以下方法:

- (void) applicationWillResignActive:(UIApplication *) application {
}

另外,如果您在应用程序中双击"主"按钮,则调用相同的方法。另外,如果警报视图显示为"应用程序WillResignActive"。

,但在这两种情况下

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

不称为。

所以我的问题是,即使应用程序未进入背景,请在调用ApplicationWillResignActive之后捕获屏幕截图?还是iOS仅在ApplicationDidenterBackground之后捕获屏幕截图?

查看官方文档 - "防止敏感信息出现在任务切换器中"。

它说applicationDidEnterBackground:应用于上述目的。

您可以在此处查看,总而言之,在从ApplicationDidenterBackground返回之前更改视图:

是。

- (void) applicationWillResignActive:(UIApplication *) application { }

拉下通知栏,甚至双击"主"按钮时,都会调用

。您必须在这里做一些事情,以防止操作系统捕获敏感信息。一个解决方法可能是:

  1. 在应用程序进入后台之前设置模糊屏幕覆盖
  2. 一旦应用程序活动删除此覆盖

类似的东西:

-(void)applicationWillResignActive:(UIApplication *)application
{
    imageView = [[UIImageView alloc]initWithFrame:[self.window frame]];
    [imageView setImage:[UIImage imageNamed:@"blurryImage.png"]];
    [self.window addSubview:imageView];
}

,然后在应用程序进入前景之前删除此覆盖层:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if(imageView != nil) {
        [imageView removeFromSuperview];
        imageView = nil;
    }
}

在您下拉通知栏时,甚至双击"主"按钮时,都会调用。您必须在这里做一些事情,以防止操作系统捕获敏感信息。一个解决方法可能是:

在应用程序进入后台之前设置模糊的屏幕覆盖层一旦应用程序活动删除此覆盖

最新更新