Flutter域名价格查询插件domain_price的使用
Flutter域名价格查询插件domain_price的使用

这是一个易于使用且经过良好测试的包,用于评估所有顶级域名和一些二级域名的价格。 您可以自由地在您的项目中使用它。
分享一些爱并为支持域名价格而点赞。
如果您撰写有关域名价格的文章或任何这些包的文章,请让我知道,我会在README中发布文章的链接 🤝
使用方法
const dp = DomainPrice('mykid.academy');
print('Price for `${dp.domain}` is ${dp.endingPriceEuro} euro.');
输出:
Price for `mykid.academy` is 29 euro.
资源
新功能
查看更新日志。
欢迎
如果您遇到任何问题,可以随时在GitHub问题中打开一个issue。如果您认为该包缺少某些功能,请在GitHub上创建一个问题,我会考虑并进行改进。您的请求和建议非常受欢迎。谢谢!
贡献使开源社区成为一个如此伟大的学习、创造、获取新技能和获得灵感的地方。
如果您是第一次做贡献,这里有一些我找到的最佳链接:它们将帮助您开始或提高效率。
- 制作第一个贡献指南
- 如何贡献开源
- 谷歌夏季指南
- CodeTriangle。免费的社区工具,用于贡献开源项目。
包域名价格是开源的、稳定的且经过良好测试的。开发发生在GitHub上。如果您发现任何问题,可以报告问题或提交pull请求。
一般问题最好在StackOverflow上提出。
以下是一些可以帮助您的方法:
- 文档化未记录的部分。无论何时您遇到我们代码库中的类、属性或方法,并注意到其缺乏文档时,请花几分钟时间写下一些有用的笔记供您的同行开发者使用。
- 改进代码。虽然我知道主要由我负责重构代码,但我非常欢迎您在这方面做出任何贡献。您的见解和改进是受欢迎的!
- 提供建设性的代码审查。如果您发现更有效的方法来实现某些事情,我很乐意听取您的建议。您的改进建议是非常宝贵的。
- 分享您的示例。如果您已经试验过我们的用例或自己编写了一些示例,请将其添加到
example
目录中。您的实际经验可以丰富我们的资源池。 - 修正拼写错误/语法错误。
- 报告难以实现的bug和场景。
- 通过提交pull请求来实现新功能。
可能的待办事项
一旦您开始使用域名价格,选择要贡献的功能将变得容易。但是,如果您已经从该包中得到了所需的一切,但还有一些空闲时间,以下是我计划的一些内容:
- 带有自己的价格表的示例。
这只是我在项目中工作时习惯的做法:记下想到的想法。我承认我很少会回来看这些笔记。但现在,希望即使您还没有想法,上述笔记也能帮助您选择合适的“功能”,并成为开源社区的贡献者。
准备好了吗?
创建于
示例代码
// ignore_for_file: avoid_print
import 'package:domain_price/domain_price.dart';
void main() {
const dp = DomainPrice('mykid.academy');
print('Price for domain `${dp.domain}` is ${dp.endingPriceEuro} euro.');
}
更多关于Flutter域名价格查询插件domain_price的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter域名价格查询插件domain_price的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
domain_price
是一个 Flutter 插件,用于查询域名的价格信息。它可以帮助开发者在应用程序中集成域名价格查询功能,例如在域名注册或域名交易应用中。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 domain_price
插件的依赖:
dependencies:
flutter:
sdk: flutter
domain_price: ^1.0.0 # 请使用最新的版本号
然后运行 flutter pub get
来安装插件。
使用插件
以下是一个简单的示例,展示如何使用 domain_price
插件查询域名价格:
import 'package:flutter/material.dart';
import 'package:domain_price/domain_price.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Domain Price Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DomainPriceScreen(),
);
}
}
class DomainPriceScreen extends StatefulWidget {
[@override](/user/override)
_DomainPriceScreenState createState() => _DomainPriceScreenState();
}
class _DomainPriceScreenState extends State<DomainPriceScreen> {
String _domainName = '';
double _price = 0.0;
bool _isLoading = false;
Future<void> _checkDomainPrice() async {
setState(() {
_isLoading = true;
});
try {
final price = await DomainPrice.getPrice(_domainName);
setState(() {
_price = price;
});
} catch (e) {
print('Error: $e');
setState(() {
_price = 0.0;
});
} finally {
setState(() {
_isLoading = false;
});
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Domain Price Checker'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
decoration: InputDecoration(
labelText: 'Enter Domain Name',
hintText: 'example.com',
),
onChanged: (value) {
setState(() {
_domainName = value;
});
},
),
SizedBox(height: 20),
_isLoading
? CircularProgressIndicator()
: ElevatedButton(
onPressed: _checkDomainPrice,
child: Text('Check Price'),
),
SizedBox(height: 20),
Text(
'Price: \$${_price.toStringAsFixed(2)}',
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
),
],
),
),
);
}
}