Flutter敏感词过滤插件badword_guard的使用

发布于 1周前 作者 caililin 来自 Flutter

Flutter敏感词过滤插件badword_guard的使用

BadWord Guard - A Flutter Package for Bad Text Word Moderation

Flutter License

BadWord Guard 是一个Flutter包,允许您轻松检测和过滤文本输入中的冒犯性语言和不良词汇。它通过扫描和清理用户生成的内容,帮助您在Flutter应用程序中保持安全和尊重用户的环境。

功能 Features

  • 检测并高亮不良词汇:轻松识别和高亮用户生成文本中的冒犯性词汇和短语。
  • 替换不良词汇:自动用可自定义的替代品或审查字符替换不良词汇,以保持内容清洁。
  • 可定制的过滤器:根据您的内容指南配置插件,包括可定制的词汇列表和替换选项。
  • 实时处理:对用户输入进行实时检查,防止不适当内容被显示或提交。

安装 Installation

  1. 将此包添加到您的 pubspec.yaml 文件:
    dependencies:
      badword_guard: ^1.0.0
    
  2. 运行 flutter pub get 以安装该包。

使用 Usage

以下是一个简单的示例代码,展示了如何使用 badword_guard 插件来检测和过滤文本中的不良词汇:

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final LanguageChecker checker = LanguageChecker();
  final TextEditingController textController = TextEditingController();
  String resultText = "";
  String filteredText = "";

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Bad Word Filter plugin'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            children: [
              TextField(
                controller: textController,
                decoration: const InputDecoration(
                  labelText: 'Enter text',
                  border: OutlineInputBorder(),
                ),
                maxLines: 5,
              ),
              const SizedBox(height: 16),
              ElevatedButton(
                onPressed: _checkAndFilterText,
                child: const Text('Check & Filter'),
              ),
              const SizedBox(height: 16),
              if (resultText.isNotEmpty) Text(resultText),
              const SizedBox(height: 8),
              if (filteredText.isNotEmpty) Text('Filtered: $filteredText'),
            ],
          ),
        ),
      ),
    );
  }

  void _checkAndFilterText() {
    String inputText = textController.text;
    bool containsBadWord = checker.containsBadLanguage(inputText);

    setState(() {
      resultText = containsBadWord
          ? 'The text contains inappropriate language.'
          : 'The text is clean.';
      filteredText = checker.filterBadWords(inputText);
    });
  }
}

示例说明

  • TextField:用于输入需要检测和过滤的文本。
  • ElevatedButton:点击按钮后,调用 _checkAndFilterText 方法来检测和过滤文本。
  • _checkAndFilterText 方法:
    • 获取用户输入的文本。
    • 使用 checker.containsBadLanguage 检测文本是否包含不良词汇。
    • 使用 checker.filterBadWords 过滤不良词汇,并将结果更新到界面上。

更多信息

对于更详细的使用和自定义选项,请参阅 官方文档

贡献 Contributing

我们欢迎贡献!如果您有任何想法、错误修复或改进,请在我们的 GitHub 仓库 上提交问题或拉取请求。

许可证 License

本包在 MIT 许可证下提供。详情请参阅 LICENSE 文件

关于 About

本包由 MD. SHAHIDUL ISLAM 开发和维护。

如果您有任何问题或需要帮助,请随时联系 shahidul1425@cseku.ac.bd

希望这个插件能帮助您更好地管理应用中的文本内容,确保用户体验的安全和友好。


更多关于Flutter敏感词过滤插件badword_guard的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter敏感词过滤插件badword_guard的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用badword_guard插件来进行敏感词过滤的代码示例。badword_guard是一个用于敏感词过滤的Flutter插件,可以帮助开发者在应用中过滤掉不适当的词汇。

步骤 1: 添加依赖

首先,在你的pubspec.yaml文件中添加badword_guard依赖:

dependencies:
  flutter:
    sdk: flutter
  badword_guard: ^最新版本号  # 请替换为最新的版本号

然后运行flutter pub get来安装依赖。

步骤 2: 初始化BadwordGuard

在你的Flutter应用的入口文件(通常是main.dart)中,初始化BadwordGuard实例并添加敏感词列表。

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

void main() {
  // 初始化BadwordGuard并添加敏感词
  BadwordGuard badwordGuard = BadwordGuard()
    ..addBadWords(['badword1', 'badword2', 'badword3'])  // 添加你的敏感词列表
    ..init();  // 初始化

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

步骤 3: 使用BadwordGuard进行敏感词过滤

现在,你可以在应用中的任何地方使用BadwordGuard实例来过滤文本。

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  BadwordGuard? badwordGuard;

  @override
  void initState() {
    super.initState();
    // 在这里你可以重新获取badwordGuard实例,或者通过依赖注入等方式传递
    badwordGuard = BadwordGuard()
      ..addBadWords(['badword1', 'badword2', 'badword3'])
      ..init();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('敏感词过滤示例'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Column(
          children: <Widget>[
            TextField(
              decoration: InputDecoration(labelText: '输入文本'),
              onChanged: (text) {
                String filteredText = badwordGuard!.filter(text);
                print('原始文本: $text');
                print('过滤后文本: $filteredText');
              },
            ),
            SizedBox(height: 20),
            Text(
              '示例文本(含敏感词)',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 10),
            Text(
              badwordGuard!.filter('这是一个包含badword1的示例文本。'),
              style: TextStyle(fontSize: 18, color: Colors.red),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们在TextFieldonChanged回调中使用badwordGuard.filter(text)方法来过滤用户输入的文本,并在下面的Text组件中展示了一个包含敏感词的示例文本及其过滤后的结果。

注意事项

  1. 初始化:确保在过滤文本之前已经初始化了BadwordGuard并添加了敏感词列表。
  2. 性能:如果敏感词列表非常大,初始化和过滤操作可能会稍微影响性能。在实际应用中,可以考虑对敏感词列表进行优化,比如使用Trie树等数据结构。
  3. 多语言支持:如果需要支持多种语言的敏感词过滤,可以分别为每种语言维护一个敏感词列表,并在需要时切换。

这样,你就可以在Flutter应用中使用badword_guard插件来实现敏感词过滤功能了。

回到顶部