android - 在 React Native 应用程序中禁用屏幕捕获/屏幕截图

标签 android ios reactjs react-native screenshot

我遇到过一些专门针对 ios 和 Android 的解决方案,以防止屏幕捕获和截屏。但是如何在 React Native 中禁用屏幕捕获?

最佳答案

安卓

/android/app/src/main/java/com/{Project_Name}/MainActivity.java

您可以添加以下行。通过setFlag FLAG_SECURE防止截屏,以下面的代码为例:

import android.os.Bundle;
import android.view.WindowManager;

...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
}

稍后当你想移除安全标志时

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);

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];
    }];
}

关于android - 在 React Native 应用程序中禁用屏幕捕获/屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54998051/

相关文章:

安卓摄像头在后台

Android:我可以使用 TransitionManager.beginDelayedTransition 监听动画更新吗?

java - 我想删除 NavigationView 布局上的栏

javascript - 如何使用 Flux/ReactJS 减少 Controller View 中的渲染调用

javascript - deck.gl + tripslayer 没有 react.js

java.lang.NoClassDefFoundError : android/os/Build$VERSION 错误

ios - 在iOS/OSX上读取带有Windows和Unix行尾的文件

ios - 无法添加 UITableViewDataSource 和 SKProductsRequestDelegate 协议(protocol)

ios - Swift 4.2//参数传递给不带参数的调用

reactjs - 无法在 React 中使用 fetch 从 ipify 获取响应