当前位置: 首页 > 面试题库 >

在React Native App中禁用Screen Capture / ScreenShot

谢麒
2023-03-14
问题内容

我遇到过几种专门针对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];
    }];
}


 类似资料:
  • 问题内容: 我们的一个内部应用程序在页面上有一个Flash对象。当浏览器中 没有 可用的Flash插件/未安装Flash插件时,我需要测试以下 几种情况 : 内部(pepperflash)或系统范围的Adobe Flash Player插件 。 根据Chromium命令行开关列表文档页面,有一个相关的命令行开关: -禁用捆绑的PPAPI版本的Flash。 但是,这只会关闭Pepperflash内部

  • 我需要禁用我的服务器中的GC开销限制。这样做的原因是暂时防止异常。 但是我在Linux Java系统方面是零,对于如何运行这个命令行没有任何线索:

  • (在中)有一个名为的属性,它可以轻松地禁用/启用所述布局约束。 要为视图控制器创建第二个布局集,然后可以通过编程方式启用/禁用该布局集(通过两个布局集的NSLayoutConstraints的IBMoutletCollection),我需要在interface builder中禁用已定义的布局约束。 让我明确一下,我不想删除它们,只需禁用它们,这样我就可以设计第二个集合,而无需界面生成器一直抱怨约

  • 问题内容: 在Swing中,我们可以禁用这样的按钮: 无论如何,使用JavaFX Button可以做到这一点吗?用户只能按一次按钮。 问题答案: 当然。只有相关 属性具有相反的语义,并称为。这意味着您可以使用(not )和。由于它是JavaFX属性,因此您还可以将侦听器附加到。 在http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#

  • 问题内容: 我用Java开发的软件有问题。用户必须在JtextPane中编写文本。如果没有时间给他写信,则会出现一个弹出窗口。唯一的问题是:如果在弹出消息时用户正在写,则弹出窗口消失,因为按下的键验证了消息。 无论如何,我可以禁用此功能吗?我用它来创建MessageDialog: 谢谢阅读。 问题答案: 禁用正常的应用程序行为(例如,使用键操作对话框)不是一个好主意。它使许多用户感到困惑,这些用户

  • 问题内容: 我有一些缓存问题。我正在运行一个很小的Web应用程序,该应用程序读取一帧并将其保存到磁盘,然后在浏览器窗口中显示。 我知道,这可能不是最好的解决方案,但是每次我使用相同的名称保存此读取帧时,任何浏览器都会对其进行缓存。 我试图使用html meta-tags-没有成功: 另外,我已经尝试过这一步骤(特定于烧瓶): 这是我尝试修改标头的方式: Google Chrome和Safari仍然

  • 我想禁用Sonar的规则,这样它就不会在网页中显示结果。在我的例子中,我想隐藏(或不捕获)关于尾随注释的结果。 是否可以在某处配置它? 谢谢。

  • 似乎Springboot自动配置自己来使用Tomcat的Logback。我想禁用它,并使用我在类路径中提供的一个。 LoggerFactory不是LoggerContext,但Logback位于类路径上。删除Logback或类[org.slf4j.impl.SimpleLoggerFactory]的竞争实现(类org.slf4j.impl.SimpleLoggerFactory)对象必须是类ch.