我正在尝试更改应用进入后台时由iOS自动捕获的屏幕截图。
然而,我并不完全确定何时拍摄此截图。
例如:
如果您在应用程序中下拉通知栏,则会调用以下方法:
- (void) applicationWillResignActive:(UIApplication *) application {
}
此外,如果您在应用程序中双击主页按钮,则会调用相同的方法。此外,如果显示警报视图,则调用“applicationWillResignActive”。
但在这两种情况下
- (void) applicationDidEnterBackground:(UIApplication *) application {
}
未被调用。
所以我的问题是,即使应用程序没有进入后台,是否在调用applicationWillResignActive后捕获了截图?或者iOS仅在applicationDidEnterBackground后捕获屏幕截图?
答案 0 :(得分:5)
查看官方文档 - "Preventing Sensitive Information From Appearing In The Task Switcher"。
它说applicationDidEnterBackground:
应该用于上述目的。
答案 1 :(得分:3)
您可以查看here,总结一下,在从applicationDidEnterBackground返回之前更改视图:
答案 2 :(得分:1)
是
- (void) applicationWillResignActive:(UIApplication *) application {
}
。您必须在此处执行某些操作以防止操作系统捕获您的敏感信息。一种解决方法可能是:
这样的事情:
-(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;
}
}
答案 3 :(得分:0)
。您必须在此处执行某些操作以防止操作系统捕获您的敏感信息。一种解决方法可能是:
在应用进入后台之前设置模糊的屏幕叠加层 应用启用后,请移除此叠加层