Отключить захват экрана / снимок экрана в приложении React Native - PullRequest
0 голосов
/ 05 марта 2019

Я сталкивался с несколькими решениями, специфичными для ios и Android, для предотвращения захвата экрана и создания снимков экрана.Но как я могу отключить захват экрана в реагировать родной?

Ответы [ 3 ]

0 голосов
/ 05 марта 2019

В android

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

написать несколько операторов импорта

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

Предотвращение захвата экрана безопасным использованием setFlag, используя приведенный ниже код внутри класса MainActivity

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

Если вы хотите снять флажок secure

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

iOS

// Наложение экрана с помощьюдобавил 2 два в 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];
}];
}
0 голосов
/ 03 августа 2019

В android

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

написать несколько операторов импорта

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

Предотвращение захвата экрана безопасным использованием setFlag ниже кода внутри класса MainActivity

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    }
0 голосов
/ 05 марта 2019

Запретить экран захвата

Android

Запретить захват экрана с помощью setFlag secure

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

Если вы хотитеудалить флаг безопасный

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