Flutter域名处理插件domain_aim的使用
Flutter域名处理插件domain_aim的使用
Domain Aim
评估顶级域名(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}
扩展
要设置自己的等级或/和自定义的“域名适用性过滤器”,可以使用以下表格:
- Google Sheets Business Card Suite / Domain aim (适用性)
以及文件夹 src/suitabilities
。
新功能 ✨
查看更新日志。
欢迎👋
如果您遇到任何问题,请随时打开一个issue。如果您觉得该包缺少某些功能,请在Github上提出一个ticket,我会查看它。欢迎提出请求和建议。感谢!
贡献使得开源社区成为学习、创造、掌握新技能和获得灵感的好地方。
如果您是第一次贡献,我将为您提供一些最好的链接:它们将帮助您入门或变得更加高效。
- 制作第一个贡献的指南. 您将在您的母语中找到该指南。
- 如何为开源做贡献. 针对新手和老手的深度阅读。
- 来自Google的夏季指南.
- CodeTriangle. 为开源项目贡献的免费社区工具。
软件包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
更多关于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'),
],
),
),
);
}
}
注意:
- 上述代码是基于假设的
DomainAnalyzer
类和它的方法。实际使用时,你需要参考domain_aim
插件的文档来了解如何正确使用它提供的类和方法。 onEditingComplete
是在用户完成文本输入时触发的,你可以根据需求选择其他触发时机,比如按钮点击事件。- 异常处理部分简单地打印了错误信息,你可以根据需求改进用户体验,比如显示一个错误提示。
希望这个示例能帮助你理解如何在 Flutter 项目中使用一个域名处理插件。如果有具体的 domain_aim
插件文档或源码,你可以进一步调整代码以适应实际插件的 API。