Flutter金融行情数据获取插件finance_quote的使用
Flutter金融行情数据获取插件finance_quote的使用
简介
finance_quote
是一个用于获取金融行情价格的Dart插件。它提供了简单易用的高阶函数和类,可以轻松获取股票(如Amazon、Google等)、商品(如黄金、石油等)以及加密货币(如比特币、以太坊等)的行情信息。该插件支持iOS和Android平台。
使用方法
获取单个股票的价格
以下是通过 FinanceQuote.getPrice
方法获取单个股票价格的示例:
final Map<String, Map<String, String>> quotePrice =
await FinanceQuote.getPrice(
quoteProvider: QuoteProvider.yahoo, symbols: <String>['KO']);
print('Number of quotes retrieved: ${quotePrice.keys.length}.');
print('Number of attributes retrieved for KO: ${quotePrice['KO'].keys.length}.');
print('Current market price for KO: ${quotePrice['KO']['price']}');
获取多个股票的价格
如果需要同时获取多个股票的价格,可以通过一次调用完成:
final Map<String, Map<String, String>> quotePrice =
await FinanceQuote.getPrice(
quoteProvider: QuoteProvider.yahoo, symbols: <String>['KO', 'GOOG']);
print('Number of quotes retrieved: ${quotePrice.keys.length}.');
print('Number of attributes retrieved for KO: ${quotePrice['KO'].keys.length}.');
print('Current market price for KO: ${quotePrice['KO']['price']}');
print('Number of attributes retrieved for GOOG: ${quotePrice['GOOG'].keys.length}.');
print('Current market price for GOOG: ${quotePrice['GOOG']['price']}');
获取加密货币的原始数据
如果需要获取加密货币的完整原始数据,可以使用 FinanceQuote.getRawData
方法:
final Map<String, Map<String, dynamic>> cryptoQuoteRaw =
await FinanceQuote.getRawData(
quoteProvider: QuoteProvider.coincap,
symbols: <String>['bitcoin', 'ethereum']);
print('Number of quotes retrieved: ${cryptoQuoteRaw.keys.length}.');
print('Number of attributes retrieved for bitcoin: ${cryptoQuoteRaw['bitcoin'].keys.length}.');
print('Current market price for bitcoin: ${cryptoQuoteRaw['bitcoin']['priceUsd']}');
print('Number of attributes retrieved for ethereum: ${cryptoQuoteRaw['ethereum'].keys.length}.');
print('Current market price for ethereum: ${cryptoQuoteRaw['ethereum']['priceUsd']}');
支持的数据提供商
该插件支持以下数据提供商:
- Yahoo
- Morningstar
- Coinmarketcap
- Coincap
- Binance
条款与条件
通过此模块获取的行情信息受数据提供商的条款和条件约束。
完整示例代码
以下是一个完整的示例代码,展示了如何使用 finance_quote
插件获取股票和加密货币的行情数据:
import 'package:finance_quote/finance_quote.dart';
Future<void> main(List<String> arguments) async {
// 获取股票数据
final Map<String, Map<String, dynamic>> quoteRaw =
await FinanceQuote.getRawData(
quoteProvider: QuoteProvider.yahoo, symbols: <String>['KO', 'GOOG']);
print('Number of quotes retrieved: ${quoteRaw.keys.length}.');
print('Number of attributes retrieved for KO: ${quoteRaw['KO'].keys.length}.');
print('Current market price for KO: ${quoteRaw['KO']['regularMarketPrice']}');
print('Number of attributes retrieved for GOOG: ${quoteRaw['GOOG'].keys.length}.');
print('Current market price for GOOG: ${quoteRaw['GOOG']['regularMarketPrice']}');
// 获取股票价格
final Map<String, Map<String, String>> quotePrice =
await FinanceQuote.getPrice(
quoteProvider: QuoteProvider.yahoo, symbols: <String>['KO', 'GOOG']);
print('Number of quotes retrieved: ${quotePrice.keys.length}.');
print('Number of attributes retrieved for KO: ${quotePrice['KO'].keys.length}.');
print('Current market price for KO: ${quotePrice['KO']['price']}');
print('Number of attributes retrieved for GOOG: ${quotePrice['GOOG'].keys.length}.');
print('Current market price for GOOG: ${quotePrice['GOOG']['price']}');
// 获取加密货币数据
final Map<String, Map<String, dynamic>> cryptoQuoteRaw =
await FinanceQuote.getRawData(
quoteProvider: QuoteProvider.coincap,
symbols: <String>['bitcoin', 'ethereum']);
print('Number of quotes retrieved: ${cryptoQuoteRaw.keys.length}.');
print('Number of attributes retrieved for bitcoin: ${cryptoQuoteRaw['bitcoin'].keys.length}.');
print('Current market price for bitcoin: ${cryptoQuoteRaw['bitcoin']['priceUsd']}');
print('Number of attributes retrieved for ethereum: ${cryptoQuoteRaw['ethereum'].keys.length}.');
print('Current market price for ethereum: ${cryptoQuoteRaw['ethereum']['priceUsd']}');
}
更多关于Flutter金融行情数据获取插件finance_quote的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter金融行情数据获取插件finance_quote的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
finance_quote
是一个用于在 Flutter 应用中获取金融行情数据的插件。它支持从多个数据源(如 Yahoo Finance、Alpha Vantage 等)获取股票、基金、加密货币等的实时和历史数据。以下是如何在 Flutter 项目中使用 finance_quote
插件的基本步骤。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 finance_quote
插件的依赖:
dependencies:
flutter:
sdk: flutter
finance_quote: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在需要使用 finance_quote
的 Dart 文件中导入插件:
import 'package:finance_quote/finance_quote.dart';
3. 获取金融数据
finance_quote
提供了多种方法来获取金融数据。以下是一些常见的用法示例。
获取实时股票价格
void getStockPrice() async {
FinanceQuote financeQuote = FinanceQuote();
Map<String, dynamic> quotes = await financeQuote.getQuotes('YAHOO', ['AAPL', 'GOOGL', 'MSFT']);
quotes.forEach((symbol, data) {
print('$symbol: ${data['price']}');
});
}
获取历史数据
void getHistoricalData() async {
FinanceQuote financeQuote = FinanceQuote();
Map<String, dynamic> historicalData = await financeQuote.getHistoricalQuotes('YAHOO', 'AAPL', startDate: '2022-01-01', endDate: '2022-12-31');
historicalData.forEach((date, data) {
print('$date: ${data['close']}');
});
}
获取加密货币价格
void getCryptoPrice() async {
FinanceQuote financeQuote = FinanceQuote();
Map<String, dynamic> quotes = await financeQuote.getQuotes('YAHOO', ['BTC-USD', 'ETH-USD']);
quotes.forEach((symbol, data) {
print('$symbol: ${data['price']}');
});
}
4. 处理数据
finance_quote
返回的数据是一个 Map<String, dynamic>
,其中键是金融产品的符号(如 AAPL
),值是一个包含各种金融数据的 Map
。你可以根据需要提取和使用这些数据。
5. 错误处理
在实际应用中,网络请求可能会失败,因此建议添加错误处理逻辑:
void getStockPrice() async {
FinanceQuote financeQuote = FinanceQuote();
try {
Map<String, dynamic> quotes = await financeQuote.getQuotes('YAHOO', ['AAPL', 'GOOGL', 'MSFT']);
quotes.forEach((symbol, data) {
print('$symbol: ${data['price']}');
});
} catch (e) {
print('Failed to get quotes: $e');
}
}
6. 数据源选择
finance_quote
支持多个数据源,如 YAHOO
、ALPHA_VANTAGE
等。你可以根据需求选择合适的数据源。例如:
Map<String, dynamic> quotes = await financeQuote.getQuotes('ALPHA_VANTAGE', ['AAPL', 'GOOGL', 'MSFT']);