首页 > 解决方案 > 如何使用 React Native 防止 IOS 中的截图?

问题描述

我正在用 react-native 开发一个应用程序。我只需要防止在 ios 中截屏。我可以通过使用 expo-ScreenCapture 在 android 中制作它,但它在 IOS 上不起作用。在这里,我只需要一种方法来防止 IOS 上的屏幕截图。任何与本机相关的方式对我来说也可以,例如使用 UIApplicationUserDidTakeScreenshot

标签: reactjsreact-native

解决方案


iOS 中的覆盖屏幕AppDelegate.m,举个例子:

- (void)applicationWillResignActive:(UIApplication *)application {    
    // fill screen with our own colour
    UIView *colourView = [[UIView alloc]initWithFrame:self.window.frame];
    colourView.backgroundColor = [UIColor whiteColor];
    colourView.tag = 1234;
    colourView.alpha = 0;
    [self.window addSubview:colourView];
    [self.window bringSubviewToFront:colourView];
    // fade in the view
    [UIView animateWithDuration:0.5 animations:^{
        colourView.alpha = 1;
    }];
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // grab a reference to our coloured view
    UIView *colourView = [self.window viewWithTag:1234];
    // fade away colour view from main view
    [UIView animateWithDuration:0.5 animations:^{
        colourView.alpha = 0;
    } completion:^(BOOL finished) {
        // remove when finished fading
        [colourView removeFromSuperview];
    }];
}


推荐阅读