当应用程序进入后台时,我试图更改iOS自动捕获的屏幕截图。
然而,我并不完全确定这个截图是什么时候拍摄的。
例如:
如果在应用程序中拉下通知栏,则调用以下方法:
- (void) applicationWillResignActive:(UIApplication *) application {
}
另外,如果在应用程序中双击home按钮,则调用相同的方法。此外,如果显示警告视图,则调用“applicationWillResignActive”。
但在这两种情况下
- (void) applicationDidEnterBackground:(UIApplication *) application {
}
不叫。
所以我的问题是,即使应用程序没有进入后台,在调用applicationWillResignActive之后是否还有截图?还是iOS只捕捉了applicationDidEnterBackground之后的截图?
发布于 2016-12-06 20:02:46
您可以查看这里,总之,在从applicationDidEnterBackground返回之前更改视图:
发布于 2016-12-13 06:22:03
请看官方文件- “防止敏感信息出现在任务交换机中”.
它说,applicationDidEnterBackground:
应该用于上述目的。
发布于 2016-12-06 21:02:02
是。
- (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;
}
}
https://stackoverflow.com/questions/40921651
复制