Flutter

[Flutter] 안드로이드 캡쳐 방지 적용

CodeSlave 2022. 4. 18. 15:58

보통 안드로이드 스마트폰에서 은행어플이나 금융관련 어플에서 

스크린샷 기능을 사용 시 사용할 수 없다는 메세지 보셨을 텐데요.

이는 안드로이드에서만 가능하고 아이폰(IOS)에서는 불가능 합니다.

테스트해보니 아이폰에서 은행어플을 들어가 캡쳐 시도하니 잘 찍히더군요..

쨌든 안드로이드에서 스크린샷을 사용하지 못하도록 방지하는 좋은 패키지가 있어

글로 남깁니다.

 

https://pub.dev/packages/flutter_windowmanager

 

flutter_windowmanager | Flutter Package

A Flutter plugin for manipulating Android WindowManager LayoutParams.

pub.dev

 

일단 해당 패키지를 설치해야합니다.

안드로이드 스튜디오 내 터미널을 열고 아래 명령어를 입력해주세요.

flutter pub add flutter_windowmanager

 

이 후 해당 패키지가 정상적으로 작동되도록 아래 명령어를 입력해주세요.

flutter pub get

이 후 캡처 방지를 적용할 dart 파일에서 최상단 Widget의 initState()에 아래 내용을 추가해주세요.

FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE);

 

https://pub.dev/packages/flutter_windowmanager/example

 

flutter_windowmanager | Flutter Package

A Flutter plugin for manipulating Android WindowManager LayoutParams.

pub.dev

해당 예제에서는 await을 사용하고 있으나 await을 삽입하지 않더라고 잘 작동됩니다^^