搜索插件、代码仓与 APP 分类

插件详情v1.5.3

screen_protector

通过应用后台截图安全地泄露数据,并防止 Android 和 iOS 的截图。

AndroidiOS
近 30 天下载
12.8万
喜欢数
326
Pub 分数
150

安装插件

flutter pub add screen_protector

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

屏幕保护程序是一个Flutter包,可在Android和iOS上防止应用在后台运行时未经授权的截图,从而保护敏感数据。它利用平台特定机制检测并阻止截图尝试,降低数据泄露风险。适用于处理机密信息(如银行、医疗或安全消息)的应用程序,无需复杂实现即可增强安全性。该包可通过简单的pub add命令无缝集成到Flutter项目中。

适合场景

  • 保护金融应用中的敏感用户数据
  • 防止医疗应用程序中的屏幕捕获
  • 保护机密通信
  • 阻止应用后台运行时截屏
  • 增强企业移动解决方案中的隐私保护

主要特点

  • 防止在 Android 和 iOS 上截取背景屏幕
  • 使用原生平台 API 进行可靠检测
  • 与 Flutter 的集成工作量最小
  • 支持 Android 和 iOS 平台
  • 应用最小化时自动阻止截图

适合对象

  • 处理敏感个人信息的应用程序
  • 企业级安全要求
  • 注重隐私的应用程序
  • 移动银行和支付平台
  • 安全的消息传递和通信工具

使用建议

  • 由于操作系统限制,可能无法在所有设备上正常工作
  • 需要正确的权限处理
  • 对物理摄像头拍摄的防护效果有限
  • 如果过度使用,对用户体验的潜在影响
  • 不是端到端加密的替代品

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

screen_protector

Safe Data Leakage via Application Background Screenshot and Prevent Screenshot for Android and iOS.

Important (Breaking Change)

Versions 1.4.4 through 1.4.13 may cause crashes on some devices. Please use version 1.4.3 or earlier, or upgrade to version 1.5.1 or later.

Feature

Import
import 'package:screen_protector/screen_protector.dart';
iOS
Protect Data Leakage Background Screenshot
  • Protect data leakage with image
await ScreenProtector.protectDataLeakageWithImage('LaunchImage');
  • Protect data leakage with color ON
await ScreenProtector.protectDataLeakageWithColor(Colors.white);
  • Protect data leakage with color OFF
await ScreenProtector.protectDataLeakageWithColorOff();
  • Protect data leakage with blur ON
await ScreenProtector.protectDataLeakageWithBlur();
  • Protect data leakage with blur OFF
await ScreenProtector.protectDataLeakageWithBlurOff();
Prevent Screenshot
  • ON
await ScreenProtector.preventScreenshotOn();
  • OFF
await ScreenProtector.preventScreenshotOff();
Check Screen Recording
final isRecording = await ScreenProtector.isRecording();
Android
Protect Data Leakage Background Screenshot and Prevent Screenshot
  • ON
await ScreenProtector.protectDataLeakageOn();

or

await ScreenProtector.preventScreenshotOn();
  • OFF
await ScreenProtector.protectDataLeakageOff();

or

await ScreenProtector.preventScreenshotOff();
Protect Data Leakage for Android 12+ (Optional)

https://github.com/prongbang/screen-protector

import com.prongbang.screenprotect.AndroidScreenProtector

class MainActivity : FlutterFragmentActivity() {

    private val screenProtector by lazy { AndroidScreenProtector.newInstance(this) }

    // For Android 12+
    override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        screenProtector.process(hasFocus.not())
    }
}

Usage

Android
  • Protect Data Leakage Background Screenshot and Prevent Screenshot.
import 'package:screen_protector/screen_protector.dart';

class _PreventScreenshotPageState extends State<MyApp> {

  void _preventScreenshotOn() async => await ScreenProtector.protectDataLeakageOn();

  void _protectDataLeakageOff() async => await ScreenProtector.protectDataLeakageOff();

  @override
  void initState() {
    _preventScreenshotOn();
    super.initState();
  }

  @override
  void dispose() {
    _protectDataLeakageOff();
    super.dispose();
  }

}
iOS
  • Prevent Screenshot
import 'package:screen_protector/screen_protector.dart';

class _PreventScreenshotPageState extends State<MyApp> {

  void _preventScreenshotOn() async => await ScreenProtector.preventScreenshotOn();

  void _preventScreenshotOff() async => await ScreenProtector.preventScreenshotOff();

  @override
  void initState() {
    _preventScreenshotOn();
    super.initState();
  }

  @override
  void dispose() {
    _preventScreenshotOff();
    super.dispose();
  }

}
  • Protect data leakage with color
import 'package:screen_protector/screen_protector.dart';

class _ProtectDataLeakagePageState extends State<MyApp> {

  void _protectDataLeakageWithColor() async => await ScreenProtector.protectDataLeakageWithColor(Colors.white);

  @override
  void initState() {
    _protectDataLeakageWithColor();
    super.initState();
  }

}
  • Protect data leakage with image

image01.png

import 'package:screen_protector/screen_protector.dart';

class _ProtectDataLeakagePageState extends State<MyApp> {

  void _protectDataLeakageWithImage() async => await ScreenProtector.protectDataLeakageWithImage('LaunchImage');

  @override
  void initState() {
    _protectDataLeakageWithImage();
    super.initState();
  }

}
  • Protect data leakage with blur
import 'package:screen_protector/screen_protector.dart';

class _ProtectDataLeakagePageState extends State<MyApp> {

  void _protectDataLeakageWithBlur() async => await ScreenProtector.protectDataLeakageWithBlur();

  @override
  void initState() {
    _protectDataLeakageWithBlur();
    super.initState();
  }

}

💖 Support the Project

If you find this package helpful, please consider supporting it:

"Buy Me A Coffee"

所属分类

源码仓库

使用此插件的项目