Flutter防止截图插件flutter_prevent_screenshot的使用

Flutter防止截图插件flutter_prevent_screenshot的使用

🚀 引入flutter_prevent_screenshot:增强您的Flutter应用安全!📱

我很高兴地宣布我们新的Flutter插件——flutter_prevent_screenshot的发布!此插件旨在帮助开发者保护其Flutter应用程序中的敏感信息,通过在Android和iOS平台上阻止截图和屏幕录制。

特性

  • 阻止截图:防止用户捕获应用内容的截图。
  • 阻止屏幕录制:禁用屏幕录制以保护敏感信息。

平台支持

兼容Android和iOS平台。

开始使用

pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter_prevent_screenshot: ^0.0.1+12

导入包:

import 'package:flutter_prevent_screenshot/flutter_prevent_screenshot.dart';

使用示例

以下是详细的使用示例:

import 'package:flutter/material.dart';
import 'package:flutter_prevent_screenshot/flutter_prevent_screenshot.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _flutterPreventScreenshot = FlutterPreventScreenshot.instance;

  [@override](/user/override)
  void initState() {
    // 在初始化时关闭截图功能
    turnoffScreenshot();
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              ElevatedButton(
                child: const Text('点击切换截图功能'),
                onPressed: () async {
                  final result = await _flutterPreventScreenshot.toggleScreenshot();
                  print(result);
                },
              ),
              ElevatedButton(
                child: const Text('点击关闭截图功能'),
                onPressed: () async {
                  final result = await _flutterPreventScreenshot.screenshotOff();
                  print(result);
                },
              ),
              ElevatedButton(
                child: const Text('点击开启截图功能'),
                onPressed: () async {
                  final result = await _flutterPreventScreenshot.screenshotOn();
                  print(result);
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  void turnoffScreenshot() async {
    final result = await _flutterPreventScreenshot.screenshotOff();
    if (kDebugMode) {
      print(result);
    }
  }
  
  [@override](/user/override)
  void dispose() {
    // 在销毁时开启截图功能
    _flutterPreventScreenshot.screenshotOn();
    super.dispose();
  }
}

更多关于Flutter防止截图插件flutter_prevent_screenshot的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter防止截图插件flutter_prevent_screenshot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter应用中,有时你可能希望防止用户对应用界面进行截图或录屏,尤其是在处理敏感信息时。flutter_prevent_screenshot 是一个Flutter插件,可以帮助你实现这一功能。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_prevent_screenshot 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_prevent_screenshot: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:flutter_prevent_screenshot/flutter_prevent_screenshot.dart';

3. 使用插件

你可以在应用的任何地方使用 flutter_prevent_screenshot 插件来防止截图或录屏。以下是一个简单的示例:

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _isScreenshotPrevented = false;

  [@override](/user/override)
  void initState() {
    super.initState();
    _preventScreenshot();
  }

  Future<void> _preventScreenshot() async {
    try {
      await FlutterPreventScreenshot.preventScreenshot();
      setState(() {
        _isScreenshotPrevented = true;
      });
    } catch (e) {
      print("Failed to prevent screenshot: $e");
    }
  }

  Future<void> _allowScreenshot() async {
    try {
      await FlutterPreventScreenshot.allowScreenshot();
      setState(() {
        _isScreenshotPrevented = false;
      });
    } catch (e) {
      print("Failed to allow screenshot: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Prevent Screenshot Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                _isScreenshotPrevented
                    ? 'Screenshot is prevented'
                    : 'Screenshot is allowed',
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: _isScreenshotPrevented ? _allowScreenshot : _preventScreenshot,
                child: Text(_isScreenshotPrevented ? 'Allow Screenshot' : 'Prevent Screenshot'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

void main() => runApp(MyApp());
回到顶部