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

1 回复

更多关于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 支持多个数据源,如 YAHOOALPHA_VANTAGE 等。你可以根据需求选择合适的数据源。例如:

Map<String, dynamic> quotes = await financeQuote.getQuotes('ALPHA_VANTAGE', ['AAPL', 'GOOGL', 'MSFT']);
回到顶部