Flutter加密货币数据获取插件coingecko_client的使用
Flutter加密货币数据获取插件coingecko_client的使用
简介
coingecko_client
是一个用于 Dart/Flutter 的 CoinGecko REST API 客户端库,提供了简单且直观的方式来访问 CoinGecko 的各种加密货币数据。该库已经经过全面测试,并且几乎所有的结果都转换为模型/DTO/实体类,方便开发者直接使用。
以下是 coingecko_client
插件的完整示例 demo:
图片展示
安装
在你的 pubspec.yaml
文件中添加以下依赖:
dependencies:
coingecko_client: ^1.2.2
使用示例
以下是一个完整的示例,展示了如何使用 coingecko_client
获取比特币的历史数据并打印出来。
import 'package:coingecko_client/coingecko_client.dart';
void main() async {
try {
// 初始化客户端
final client = CoinGeckoClient();
// 获取比特币的历史数据
final coinHistory = await client.coins.getHistory(
id: 'bitcoin',
date: DateTime.now()
);
// 打印历史数据
print(coinHistory);
print(coinHistory.name);
} on Exception catch (e, _) {
// 异常处理
print("错误发生");
if (e is NetworkRequestException) {
print(e.statusCode);
} else {
rethrow;
}
}
}
其他常见用法
以下是其他一些常见的 API 调用示例:
-
检查服务是否在线
// 检查服务是否在线 final result = await client.ping.getResult(); print(result);
-
获取所有加密货币的基本列表
// 获取所有加密货币的基本列表 final coinsList = await client.coins.getBasicList(); print(coinsList);
-
获取市场数据
// 获取市场数据 final marketData = await client.coins.getMarketList( vsCurrency: Currencies.usd ); print(marketData);
-
获取特定加密货币的信息
// 获取特定加密货币的信息 final coinInfo = await client.coins.getInfo(id: 'verus-coin'); print(coinInfo);
-
获取交易所列表
// 获取交易所列表 final exchangesList = await client.exchanges.getList(); print(exchangesList);
-
获取简单的币种价格
// 获取简单的币种价格 final priceData = await client.simple.getCoinPrice( ids: ['bitcoin', 'ethereum'], vsCurrencies: [Currencies.usd, Currencies.php], includeMarketCap: true, include24hrVol: true, include24hrChange: true, includeLastUpdatedAt: true, precision: 18 ); print(priceData);
错误处理
为了确保代码的健壮性,建议将 API 调用包裹在 try/catch
块中,以便捕获和处理可能的异常。例如:
try {
final client = CoinGeckoClient();
final coinHistory = await client.coins.getHistory(
id: 'bitcoin',
date: DateTime.now()
);
print(coinHistory);
} on NetworkRequestException catch (e, _) {
print('网络请求错误: ${e.statusCode}');
} catch (e) {
print('未知错误: $e');
}
更多关于Flutter加密货币数据获取插件coingecko_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter加密货币数据获取插件coingecko_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个使用Flutter的coingecko_client
插件来获取加密货币数据的示例代码。这个插件允许你访问CoinGecko API,获取各种加密货币的市场数据、价格、交易量等信息。
首先,你需要在你的pubspec.yaml
文件中添加coingecko_client
依赖:
dependencies:
flutter:
sdk: flutter
coingecko_client: ^最新版本号 # 请替换为最新的版本号
然后运行flutter pub get
来安装依赖。
接下来是一个简单的Flutter应用示例,展示如何使用coingecko_client
获取比特币(BTC)的当前价格信息:
import 'package:flutter/material.dart';
import 'package:coingecko_client/coingecko_client.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
late CoinGeckoClient _client;
String? _price;
bool _loading = true;
@override
void initState() {
super.initState();
_client = CoinGeckoClient();
_fetchBitcoinPrice();
}
Future<void> _fetchBitcoinPrice() async {
try {
final response = await _client.coins.getCoinById(
id: 'bitcoin',
localization: 'en',
tickers: false,
marketData: true,
communityData: false,
developerData: false,
sparkline: false,
);
setState(() {
_price = response.data!.marketData!.currentPrice!.usd!.toString();
_loading = false;
});
} catch (e) {
print('Error fetching Bitcoin price: $e');
setState(() {
_price = 'Error fetching data';
_loading = false;
});
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('CoinGecko Client Example'),
),
body: Center(
child: _loading
? CircularProgressIndicator()
: Text(
'Current Bitcoin Price: \$$_price',
style: TextStyle(fontSize: 24),
),
),
),
);
}
}
在这个示例中,我们:
- 创建了一个
CoinGeckoClient
实例。 - 使用
_fetchBitcoinPrice
方法调用getCoinById
函数获取比特币的市场数据。 - 在获取数据成功后,更新UI显示当前价格。
- 使用一个布尔变量
_loading
来显示加载指示器或价格信息。
请确保你已经连接互联网,因为coingecko_client
需要从CoinGecko的API获取数据。
这个示例只是展示了基本的用法,coingecko_client
插件还提供了更多功能,比如获取多个币种的列表、历史价格数据等,你可以参考官方文档获取更多详细信息。