Flutter巴西邮政包裹追踪插件correios_rastreio的使用

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

Flutter巴西邮政包裹追踪插件correios_rastreio的使用

Correios Rastreio 是一个用于简化在巴西邮政跟踪包裹的库,灵感来源于 Rastreio Brasil

使用方法

简单的例子:

import 'package:correios_rastreio/correios_rastreio.dart';

void main() async {
  var correios = CorreiosRastreio();

  // 跟踪一个包裹,传入跟踪号作为参数
  final result = await correios.rastrearEncomenda('QB944791449BR');

  // 打印事件数量
  print(result.eventos.length);
  print(result.eventos.length);

  // 打印第一个事件的描述和日期
  print(result.eventos[0].descricao);
  print(result.eventos[0].data);
}

特性

目前唯一的功能是包裹跟踪,但未来会实现通过邮政编码搜索和运费计算的功能。

如果有任何问题或错误,请在 GitHub 上创建一个 issue。

完整示例代码

以下是完整的示例代码,你可以将其复制到你的项目中进行测试:

import 'package:correios_rastreio/correios_rastreio.dart';

void main() async {
  // 创建一个 CorreiosRastreio 实例
  var correios = CorreiosRastreio();

  // 跟踪一个包裹,传入跟踪号作为参数
  final result = await correios.rastrearEncomenda('NA991007796BR');

  // 打印事件数量
  print("事件数量: ${result.eventos.length}");

  // 打印第一个事件的描述和日期
  if (result.eventos.isNotEmpty) {
    print("第一个事件的描述: ${result.eventos[0].descricao}");
    print("第一个事件的日期: ${result.eventos[0].data}");
  } else {
    print("没有找到事件");
  }
}

更多关于Flutter巴西邮政包裹追踪插件correios_rastreio的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter巴西邮政包裹追踪插件correios_rastreio的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用correios_rastreio插件的详细步骤和代码示例。correios_rastreio是一个用于追踪巴西邮政(Correios)包裹状态的Flutter插件。

1. 添加依赖

首先,在你的Flutter项目的pubspec.yaml文件中添加correios_rastreio依赖:

dependencies:
  flutter:
    sdk: flutter
  correios_rastreio: ^最新版本号  # 请替换为最新的版本号

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

2. 导入插件

在你的Dart文件中导入插件:

import 'package:correios_rastreio/correios_rastreio.dart';

3. 使用插件追踪包裹

下面是一个简单的示例,展示如何使用correios_rastreio插件来追踪包裹:

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? trackingResult;
  bool isLoading = false;

  void fetchTrackingInfo(String code) async {
    setState(() {
      isLoading = true;
      trackingResult = null;
    });

    try {
      var result = await CorreiosRastreio.getTrackingInfo(code);
      setState(() {
        trackingResult = result;
        isLoading = false;
      });
    } catch (e) {
      setState(() {
        trackingResult = 'Error: ${e.message}';
        isLoading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Correios Tracking Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              TextField(
                decoration: InputDecoration(
                  labelText: 'Enter Tracking Code',
                ),
                onChanged: (value) {},
              ),
              SizedBox(height: 16),
              ElevatedButton(
                onPressed: () {
                  // 获取TextField中的值并调用fetchTrackingInfo函数
                  // 这里假设你有一个TextField的controller来获取输入值
                  // 你可以通过TextEditingController来获取输入值
                  // TextEditingController _controller = TextEditingController();
                  // 在TextField中使用controller: _controller,
                  // 然后在这里使用 _controller.text 来获取输入值
                  // 例如: fetchTrackingInfo(_controller.text);

                  // 为了简化示例,这里直接使用一个硬编码的追踪码
                  fetchTrackingInfo('你的追踪码');
                },
                child: Text('Track Package'),
              ),
              SizedBox(height: 16),
              if (isLoading)
                CircularProgressIndicator(),
              if (trackingResult != null)
                Text(
                  trackingResult!,
                  style: TextStyle(fontSize: 16),
                ),
            ],
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 获取追踪码:在实际应用中,你可能需要从用户输入或其他数据源获取追踪码。
  2. 错误处理:示例代码中包含了基本的错误处理,你可以根据需要扩展它。
  3. UI优化:示例代码提供了一个简单的UI,你可以根据需要进行自定义和美化。

确保你已经正确配置了网络连接,因为该插件需要从巴西邮政的服务器获取数据。如果你在实际应用中遇到问题,可以查阅correios_rastreio插件的官方文档或GitHub仓库以获取更多信息和支持。

回到顶部