Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.2.0

disable_screenshots

Fornece três funções relacionadas que desativam capturas de tela. São elas: monitoramento de captura de tela, adição de marca d'água globalmente e desativação de capturas de tela (apenas suporta Android).

AndroidiOS
Downloads em 30 dias
61
Curtidas
33
Pontos Pub
115

Instalar pacote

flutter pub add disable_screenshots

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote disable_screenshots oferece três funções para aumentar a segurança do aplicativo impedindo capturas de tela não autorizadas. Ele permite o monitoramento de capturas de tela para detectar quando uma captura é feita, permite adicionar uma marca d'água global para desencorajar o compartilhamento e desativa as capturas de tela em dispositivos Android. Embora o suporte ao iOS seja listado, a funcionalidade real de desativar capturas de tela está limitada apenas ao Android. O pacote se integra facilmente por meio do Flutter Pub e é útil para aplicativos que lidam com conteúdo sensível. Suas funcionalidades são projetadas para proteger a privacidade do usuário e a integridade dos dados em contextos de alta segurança.

Casos de uso

  • Protegendo conteúdo sensível do aplicativo
  • Proteger aplicativos financeiros ou de saúde
  • Evitando compartilhamento de tela não autorizado
  • Melhorando o gerenciamento de direitos digitais
  • Monitoramento de tentativas de captura de tela

Principais recursos

  • Monitoramento de captura de tela
  • sobreposição de marca d'água global
  • Desativar captura de tela somente para Android
  • Integração simples com Flutter
  • Design centrado na privacidade

Indicado para

  • Aplicativos com dados confidenciais
  • Plataformas educacionais com material protegido por direitos autorais
  • Aplicativos bancários ou empresariais seguros
  • Proteção de conteúdo para mídia digital
  • Equipes de desenvolvimento priorizando a privacidade do usuário

Considerações

  • Nenhuma funcionalidade de desativação de captura de tela no iOS
  • A marca d'água pode afetar a estética da IU
  • Requer permissões específicas do Android
  • Limitado ao Android para bloqueio completo de captura de tela
  • Pode afetar a experiência do usuário se usado em excesso

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

disable_screenshots

在Flutter开发中,有时我们需要对App的内容进行管控,避免敏感信息暴露,所以开发了这个插件。此插件提供三个禁用截屏的相关功能,分别是:截屏监控行为、全局添加水印、禁用截屏(仅支持Android)。

Getting Started

Add dependency
dependencies:
  disable_screenshots: 0.0.1 #latest version
功能演示

demo_gif

使用样例
class RootApp extends StatefulWidget {
  @override
  _RootAppState createState() => _RootAppState();
}

class _RootAppState extends State<RootApp> {
  // 初始化插件
  DisableScreenshots _plugin = DisableScreenshots();
  // 监控截屏行为的stream
  StreamSubscription<void> _screenshotsSubscription;
  int _screenshotsCount = 0;
  bool _disableScreenshots = false;

  @override
  void initState() {
    super.initState();
    _screenshotsSubscription = _plugin.onScreenShots.listen((event) {
      // 监控到截屏行为会回调到这里
      setState(() {
        _screenshotsCount++;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('禁止截屏'),
      ),
      body: Column(
        children: <Widget>[
          Center(
            child: Text("监控到截屏次数:$_screenshotsCount"),
          ),
          Center(
            child: Text(_disableScreenshots ? "禁止截屏状态" : "允许截屏状态"),
          ),
          RaisedButton(
              onPressed: () {
                // 添加默认样式的水印
                _plugin.addWatermark(context, "默认水印",
                    rowCount: 4, columnCount: 8);
              },
              child: Text("添加默认水印")),
          RaisedButton(
              onPressed: () {
                // 添加自定义widget当做水印
                _plugin.addCustomWatermark(context,
                    Watarmark(rowCount: 3, columnCount: 10, text: "自定义水印"));
              },
              child: Text("添加自定义水印")),
          RaisedButton(
              onPressed: () {
                // 移除水印
                _plugin.removeWatermark();
              },
              child: Text("删除水印")),
          RaisedButton(
              onPressed: () async {
                bool flag = !_disableScreenshots;
                // 禁用或允许截屏(只支持iOS)
                await _plugin.disableScreenshots(flag);
                setState(() {
                  _disableScreenshots = flag;
                });
              },
              child: Text(_disableScreenshots ? "允许截屏(仅android适用)" : "禁用截屏(仅android适用)")),
          RaisedButton(
              onPressed: () {
                Navigator.of(context).push(MaterialPageRoute(
                    builder: (_) => Scaffold(
                          appBar: AppBar(
                            title: Text("我是新页面"),
                          ),
                          body: Center(child: Text("new page")),
                        )));
              },
              child: Text("进入新页面"))
        ],
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    //取消截屏监控可以调用cancel()方法
    if (_screenshotsSubscription != null) {
      _screenshotsSubscription.cancel();
    }
  }
}
已知问题
  1. 在老的flutter项目中,在iOS平台运行可能出现编译问题无法运行。这个是由于老的flutter项目里面没有使用到swift,所以没有briging文件,但是插件使用了swift,所以会编译失败,这种情况直接使用xcode在iOS项目中创建一个swift文件,会自动生成briding文件。
  2. 在某些安卓设备上(华为P30、Mi 10、三星Note10、OPPO reno3 Pro等),存在不能捕获截屏事件的问题,如果大家有解决方案,请提交pull request,谢谢!
其它

此Plugin的创建流程,可以参考博文如何创建一个Flutter Plugin

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.