Flutter域名处理插件domain_aim的使用

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

Flutter域名处理插件domain_aim的使用

Domain Aim

SDK版本 支持平台 支持SDK 封面 - Domain Aim

许可证 Pub包 代码大小 发布者

构建状态 Pull请求 问题 Pub评分

评估顶级域名(TLD)可以用于哪些用途?这是一个易于使用且经过良好测试的软件包。

您可以自由地在您的项目中使用它。

代码质量

分享一些❤️并给仓库加星以支持 Domain Aim

如果您写了一篇关于DomainAim的文章或任何这些软件包的文章,请告诉我,我会在README中发布文章的链接 🤝

使用方法 🚀

作为个人名片网站评估TLD

final appraiser = Appraiser.personalBusinessCard();
print(appraiser.appraiseTld('com'));

输出:

YES

所有适合用作个人名片网站的TLD

final appraiser = Appraiser.personalBusinessCard();
final yesFilter = appraiser.filter([Grade.YES, Grade.Yes, Grade.yes]);
print(yesFilter);

等级相关性:YES > Yes > yes

输出:

{biz: YES, black: YES, com: YES, contact: YES, cool: YES, dad: YES, me: YES, one: YES, online: YES, page: YES, space: YES, best: Yes, bio: Yes, center: Yes, co: Yes, fan: Yes, gay: Yes, ink: Yes, io: Yes, it: Yes, life: Yes, live: Yes, net: Yes, pro: Yes, site: Yes, soy: Yes, website: Yes, win: Yes, actor: yes, art: yes, au: yes, band: yes, bike: yes, bingo: yes, blog: yes, boo: yes, business: yes, buzz: yes, ca: yes, cab: yes, cc: yes, cheap: yes, com.au: yes, com.mx: yes, digital: yes, direct: yes, dog: yes, expert: yes, family: yes, fun: yes, gallery: yes, glass: yes, global: yes, gold: yes, green: yes, guide: yes, guru: yes, hair: yes, holiday: yes, in: yes, info: yes, irish: yes, jp: yes, lat: yes, limited: yes, limo: yes, love: yes, men: yes, monster: yes, mx: yes, nexus: yes, ninja: yes, nl: yes, place: yes, plus: yes, pub: yes, quest: yes, red: yes, rest: yes, run: yes, ski: yes, skin: yes, social: yes, solar: yes, uk: yes, uno: yes, us: yes, vegas: yes, vision: yes, watch: yes, world: yes, xyz: yes, zip: yes, zone: yes}

扩展

要设置自己的等级或/和自定义的“域名适用性过滤器”,可以使用以下表格:

以及文件夹 src/suitabilities

新功能 ✨

查看更新日志

欢迎👋

如果您遇到任何问题,请随时打开一个issue。如果您觉得该包缺少某些功能,请在Github上提出一个ticket,我会查看它。欢迎提出请求和建议。感谢!

贡献使得开源社区成为学习、创造、掌握新技能和获得灵感的好地方。

如果您是第一次贡献,我将为您提供一些最好的链接:它们将帮助您入门或变得更加高效。

软件包DomainAim是开源的、稳定的并且经过良好测试。开发在 GitHub 上进行。请随意在那里报告问题或创建pull-request。

通用问题最好在 StackOverflow 上提问。

以下是您可以帮助的方式:

  • 文档化未记录的内容。每当您遇到我们代码库中的类、属性或方法而您熟悉它但注意到它缺乏文档时,请花几分钟时间撰写一些有助于其他开发者的笔记。
  • 优化代码。虽然我知道主要由我负责重构代码,但我非常欢迎您在这方面做出贡献。您的见解和改进意见是受欢迎的!
  • 建设性的代码审查。如果您发现更有效的方法来实现某些功能,请随时提供建议。您的增强建议是无价的。
  • 分享您的示例。如果您已经尝试过我们的用例或自己创建了一些示例,请将其添加到 example 目录中。您的实际经验可以丰富我们的资源池。
  • 修复拼写错误/语法错误。
  • 报告难以实现的bug和场景。
  • 通过发起pull-request来实现新功能。

可能的TODO列表 ✅

一旦开始使用DomainAim,选择要贡献的功能就变得容易了。但如果您已经从这个包中获得了所需的一切,但还有一些空闲时间,让我在这里写下我计划的一些东西:

  • TLD域名描述的链接。

这只是我在项目中工作时的习惯:记下脑海中的想法。我承认我很少回去看这些笔记。但现在,希望即使您还没有想法,上述笔记也能帮助您选择合适的“功能”并成为开源社区的贡献者。

准备好了吗?

创建于


完整示例Demo

下面是完整的示例代码:

import 'package:domain_aim/domain_aim.dart';

void main() {
  // 创建一个用于个人名片的评估器
  final appraiser = Appraiser.personalBusinessCard();

  // 测试特定的TLD
  const tld = 'com';
  print('对于${appraiser.suitability},TLD `$tld` 的适用性: ${appraiser.appraiseTld(tld)}');

  // 获取所有适用的TLD
  final yesFilter = appraiser.filter([Grade.YES, Grade.Yes, Grade.yes]);
  print('对于${appraiser.suitability},适用的TLD: $yesFilter');
}

运行这段代码将会输出:

对于个人名片,TLD `com` 的适用性: YES
对于个人名片,适用的TLD: {biz: YES, black: YES, com: YES, contact: YES, cool: YES, dad: YES, me: YES, one: YES, online: YES, page: YES, space: YES, best: Yes, bio: Yes, center: Yes, co: Yes, fan: Yes, gay: Yes, ink: Yes, io: Yes, it: Yes, life: Yes, live: Yes, net: Yes, pro: Yes, site: Yes, soy: Yes, website: Yes, win: Yes, actor: yes, art: yes, au: yes, band: yes, bike: yes, bingo: yes, blog: yes, boo: yes, business: yes, buzz: yes, ca: yes, cab: yes, cc: yes, cheap: yes, com.au: yes, com.mx: yes, digital: yes, direct: yes, dog: yes, expert: yes, family: yes, fun: yes, gallery: yes, glass: yes, global: yes, gold: yes, green: yes, guide: yes, guru: yes, hair: yes, holiday: yes, in: yes, info: yes, irish: yes, jp: yes, lat: yes, limited: yes, limo: yes, love: yes, men: yes, monster: yes, mx: yes, nexus: yes, ninja: yes, nl: yes, place: yes, plus: yes, pub: yes, quest: yes, red: yes, rest: yes, run: yes, ski: yes, skin: yes, social: yes, solar: yes, uk: yes, uno: yes, us: yes, vegas: yes, vision: yes, watch: yes, world: yes, xyz: yes, zip: yes, zone: yes}

更多关于Flutter域名处理插件domain_aim的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter域名处理插件domain_aim的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,domain_aim 是一个用于 Flutter 的域名处理插件,它可能提供了一些便捷的方法来处理和分析域名。虽然我没有具体的 domain_aim 插件的文档或源码,但我可以根据一般插件的使用方法和 Flutter 的常见模式给出一个示例代码,展示如何在 Flutter 项目中使用一个假设的域名处理插件。

首先,确保你已经在 pubspec.yaml 文件中添加了 domain_aim 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  domain_aim: ^latest_version  # 请替换为实际的最新版本号

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

接下来,在你的 Dart 文件中导入该插件并使用它。以下是一个示例代码,展示了如何使用一个假设的 domain_aim 插件来解析和处理域名:

import 'package:flutter/material.dart';
import 'package:domain_aim/domain_aim.dart';  // 假设这是插件的导入路径

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

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

class DomainAimDemo extends StatefulWidget {
  @override
  _DomainAimDemoState createState() => _DomainAimDemoState();
}

class _DomainAimDemoState extends State<DomainAimDemo> {
  String? domain;
  String? subdomain;
  String? topLevelDomain;
  String? secondLevelDomain;

  void analyzeDomain(String inputDomain) async {
    try {
      // 假设 DomainAnalyzer 是插件中提供的一个类
      final DomainAnalyzer analyzer = DomainAnalyzer(inputDomain);
      
      // 假设有以下方法来获取域名的不同部分
      setState(() {
        domain = analyzer.getFullDomain();
        subdomain = analyzer.getSubdomain();
        topLevelDomain = analyzer.getTopLevelDomain();
        secondLevelDomain = analyzer.getSecondLevelDomain();
      });
    } catch (e) {
      // 处理异常,例如域名格式不正确
      print('Error analyzing domain: $e');
      setState(() {
        domain = null;
        subdomain = 'Error';
        topLevelDomain = null;
        secondLevelDomain = null;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Domain Aim Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            TextField(
              decoration: InputDecoration(labelText: 'Enter Domain'),
              onChanged: (value) {
                // 可以在这里添加一些即时验证或清理输入的逻辑
              },
              onEditingComplete: () {
                // 当用户完成编辑时分析域名
                analyzeDomain(value);
              },
            ),
            SizedBox(height: 16),
            if (domain != null)
              Text('Full Domain: $domain'),
            if (subdomain != null)
              Text('Subdomain: $subdomain'),
            if (secondLevelDomain != null)
              Text('Second Level Domain: $secondLevelDomain'),
            if (topLevelDomain != null)
              Text('Top Level Domain: $topLevelDomain'),
          ],
        ),
      ),
    );
  }
}

注意

  1. 上述代码是基于假设的 DomainAnalyzer 类和它的方法。实际使用时,你需要参考 domain_aim 插件的文档来了解如何正确使用它提供的类和方法。
  2. onEditingComplete 是在用户完成文本输入时触发的,你可以根据需求选择其他触发时机,比如按钮点击事件。
  3. 异常处理部分简单地打印了错误信息,你可以根据需求改进用户体验,比如显示一个错误提示。

希望这个示例能帮助你理解如何在 Flutter 项目中使用一个域名处理插件。如果有具体的 domain_aim 插件文档或源码,你可以进一步调整代码以适应实际插件的 API。

回到顶部