Flutter实时汇率查询插件live_currency_rate的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter实时汇率查询插件live_currency_rate的使用

live_currency_rate 是一个用于在Flutter应用中获取实时汇率并进行货币转换的插件。本文将详细介绍如何使用该插件,并提供一个完整的示例代码。

Gallery

以下是插件的示例界面:

Live currency rate app start Live currency app process

Features

  • 获取实时汇率
  • 将一种货币金额转换为另一种货币
  • 可用于将应用内购买的货币转换为默认货币,以便在管理后台显示

Getting Started

首先,需要在你的项目中添加 live_currency_rate 插件。打开 pubspec.yaml 文件,添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  live_currency_rate: ^最新版本号

然后,在你的Dart文件中导入插件:

import 'package:live_currency_rate/live_currency_rate.dart';

Usage

示例代码

以下是一个完整的示例代码,展示了如何使用 live_currency_rate 插件来获取实时汇率并进行货币转换:

import 'package:flutter/material.dart';
import 'package:live_currency_rate/live_currency_rate.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Live Currency App Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const Home(),
    );
  }
}

class Home extends StatefulWidget {
  const Home();

  @override
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  String rates = "";
  bool isLoading = false;

  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;

    return Scaffold(
      appBar: AppBar(title: const Text("Live Currency App Demo")),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          SizedBox(
            width: size.width,
            child: const Text(
              "USD to AED",
              textAlign: TextAlign.center,
              style: TextStyle(fontSize: 22),
            ),
          ),
          SizedBox(
            width: size.width,
            child: const Text(
              "US Dollar to UAE Dirham",
              textAlign: TextAlign.center,
              style: TextStyle(fontSize: 10),
            ),
          ),
          const SizedBox(height: 20),
          isLoading
              ? const CircularProgressIndicator()
              : Column(
                  children: [
                    const Text(
                      "Real-Time Current Rate",
                      style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 10),
                    Text(
                      rates,
                      style: const TextStyle(fontSize: 18, fontWeight: FontWeight.normal),
                    ),
                  ],
                ),
          const SizedBox(height: 20),
          ElevatedButton(
            onPressed: () async {
              setState(() {
                isLoading = true;
              });
              try {
                CurrencyRate rate = await LiveCurrencyRate.convertCurrency("USD", "AED", 1);
                setState(() {
                  rates = "1 USD  =  ${rate.result} AED";
                  isLoading = false;
                });
              } catch (e) {
                setState(() {
                  rates = "Error: $e";
                  isLoading = false;
                });
              }
            },
            child: const Text("Click to get Rates"),
          ),
        ],
      ),
    );
  }
}

Additional Information

  • 使用 HTTPS 进行数据传输,因此可能需要一些时间来获取汇率。

  • 建议使用异步函数来获取汇率。

  • 目前支持的平台:

    • iOS: ✅
    • Android: ✅
    • Web: 🚫
  • 由于服务器端尚未定义CORS,Web平台暂时无法使用。请等待进一步更新。

  • 支持所有标准货币代码,例如:

    • AED
    • PKR
    • INR
    • USD
    • 等等

通过以上步骤和示例代码,你可以在Flutter应用中轻松实现实时汇率查询和货币转换功能。希望本文对你有所帮助!


更多关于Flutter实时汇率查询插件live_currency_rate的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter实时汇率查询插件live_currency_rate的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中集成和使用live_currency_rate插件来实现实时汇率查询的示例代码。

首先,确保你已经在pubspec.yaml文件中添加了live_currency_rate依赖:

dependencies:
  flutter:
    sdk: flutter
  live_currency_rate: ^最新版本号  # 请替换为实际最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤来使用live_currency_rate插件。

1. 导入插件

在你需要查询汇率的Dart文件中,导入live_currency_rate插件:

import 'package:live_currency_rate/live_currency_rate.dart';

2. 初始化插件并获取汇率

以下是一个完整的示例,展示了如何初始化插件并获取两种货币之间的汇率:

import 'package:flutter/material.dart';
import 'package:live_currency_rate/live_currency_rate.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('实时汇率查询'),
        ),
        body: Center(
          child: CurrencyRateScreen(),
        ),
      ),
    );
  }
}

class CurrencyRateScreen extends StatefulWidget {
  @override
  _CurrencyRateScreenState createState() => _CurrencyRateScreenState();
}

class _CurrencyRateScreenState extends State<CurrencyRateScreen> {
  String? fromCurrency = 'USD';
  String? toCurrency = 'EUR';
  double? exchangeRate;
  String? errorMessage;

  @override
  void initState() {
    super.initState();
    fetchExchangeRate();
  }

  void fetchExchangeRate() async {
    try {
      // 初始化插件
      final liveCurrencyRate = LiveCurrencyRate();
      
      // 获取汇率
      var result = await liveCurrencyRate.getCurrencyRate(fromCurrency!, toCurrency!);
      
      // 更新状态
      setState(() {
        exchangeRate = result.rate;
        errorMessage = null;
      });
    } catch (e) {
      // 处理错误
      setState(() {
        exchangeRate = null;
        errorMessage = e.toString();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text('从 ${fromCurrency!} 到 ${toCurrency!} 的汇率:'),
        if (exchangeRate != null) {
          Text('汇率: ${exchangeRate!}'),
        } else if (errorMessage != null) {
          Text('错误: ${errorMessage!}'),
        } else {
          Text('加载中...'),
        },
      ],
    );
  }
}

3. 运行应用

确保你的网络连接正常,然后运行你的Flutter应用。你应该能够看到从USDEUR的实时汇率(或者其他你选择的货币)。

注意事项

  1. API 限制live_currency_rate插件可能依赖于某个外部API,该API可能有速率限制或其他限制。请确保遵守这些限制。
  2. 错误处理:在生产环境中,你应该添加更多的错误处理逻辑,以处理网络问题、API不可用等情况。
  3. UI 改进:上面的示例代码是非常基础的UI。你可以根据需要进行自定义和扩展。

希望这个示例对你有所帮助!如果有任何问题或需要进一步的帮助,请随时提问。

回到顶部