替換應(yīng)用進(jìn)入后臺時的截屏

為什么要做這件事兒?

當(dāng)應(yīng)用進(jìn)入后臺時,系統(tǒng)會自動在當(dāng)前應(yīng)用的頁面截屏并存儲到手機(jī)內(nèi),如果當(dāng)前頁面涉及敏感信息時,被攻擊會造成泄密。

方案一 模糊背景圖片

在應(yīng)用被掛起時,在當(dāng)前頁面添加一層高斯模糊,在應(yīng)用重新進(jìn)入前臺時,刪除模糊效果。

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [super applicationDidEnterBackground:application];

     UIToolbar *bar =  [[UIToolbar alloc] initWithFrame:self.window.bounds];
     bar.barStyle = UIBarStyleDefault;
     bar.tag = 101;
    [UIApplication.sharedApplication.keyWindow.subviews.lastObject addSubview:bar];
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    [super applicationWillEnterForeground:application];

    UIView *view = (UIView *)[UIApplication.sharedApplication.keyWindow.subviews.lastObject viewWithTag:101];
    [view removeFromSuperview];
}

方案二 自定義背景圖片

使用啟動圖作為進(jìn)入后臺的背景圖片

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [super applicationDidEnterBackground:application];

    UIImage * img = [VRLaunchApi getSplashImg];
    imageView.tag = 101;
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.window.bounds];
    [imageView setImage:img];
    [UIApplication.sharedApplication.keyWindow.subviews.lastObject addSubview:imageView];
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    [super applicationWillEnterForeground:application];

    UIImageView *imageView = (UIImageView *)[UIApplication.sharedApplication.keyWindow.subviews.lastObject viewWithTag:101];
    [imageView removeFromSuperview];
}

獲取啟動圖片

+ (UIImage *)getSplashImg
{
    NSString *launchimg = @"";
    NSArray *imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    CGSize viewSize = [UIScreen mainScreen].bounds.size;

    for (NSDictionary* dict in imagesDict)
    {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) && [@"Portrait" isEqualToString:dict[@"UILaunchImageOrientation"]])
        {
            launchimg = dict[@"UILaunchImageName"];
            break;
        }
    }
    
    DLog(@"getSplashImg:%@",launchimg);
    return [UIImage imageNamed:launchimg];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容