Flutter插件buxing的使用_buxing 是一个用于Flutter应用的HTTP文件下载器插件

发布于 1周前 作者 yuanlaile 最后一次编辑是 5天前 来自 Flutter

Flutter插件buxing的使用_buxing 是一个用于Flutter应用的HTTP文件下载器插件

插件介绍

buxing 是一个用于Flutter应用的HTTP文件下载器插件,具备许多特性,例如可恢复下载、多连接支持、缓冲和自动重试等。

功能特性

  • 可恢复下载。
  • 支持多连接。
  • 自动缓冲以减少磁盘写入。
  • 通过内置的 RetryClient 实现自动HTTP连接重试。

使用示例

安装和导入

首先需要安装并导入该插件:

import 'package:buxing/buxing.dart';
简单任务示例

以下是一个简单的下载任务示例:

void main() async {
  // 创建一个下载任务
  var task = Task(
      Uri.parse('https://golang.org/dl/go1.17.3.src.tar.gz'), 'go1.17.3.src.tar.gz');
  
  // 开始下载任务
  await task.start();
}
进度报告

可以通过 Task.onProgress 获取进度事件:

task.onProgress = (prog) => print(prog.transferred / prog.total);
// 打印已传输的数据量与总数据量的比例
多连接支持

为了启用多连接,可以在构造函数中设置 worker 参数,并传递一个 ParallelWorker 对象:

var task = Task(Uri.parse('https://golang.org/dl/go1.17.3.src.tar.gz'),
    'go1.17.3.src.tar.gz',
    worker: ParallelWorker()); // `ParallelWorker` 启用多连接

// 显式设置并发连接数
ParallelWorker(concurrency: 10);
缓冲区大小

默认情况下,单连接任务的缓冲区大小为200 KB,多连接任务每个连接的缓冲区大小为50 KB。可以通过以下方式设置缓冲区大小:

// 单连接任务
var task = Task(Uri.parse('URL'), 'FILE',
    worker: Worker(bufferSize: 100000)); // 100 KB

// 多连接任务
var task = Task(Uri.parse('URL'), 'FILE',
    worker: ParallelWorker(bufferSize: 100000)); // 100 KB
日志记录

可以通过设置 logger 字段启用日志记录:

var task = Task(Uri.parse('https://golang.org/dl/go1.17.3.src.tar.gz'),
    'downloads/go1.17.3.src.tar.gz',
    logger: Logger(level: LogLevel.info));

// 日志级别枚举
enum LogLevel { verbose, info, warning, error }

完整示例Demo

以下是一个完整的示例代码,展示了如何使用 buxing 插件进行文件下载:

import 'package:buxing/buxing.dart';

void main() async {
  // 创建一个下载任务,指定下载地址和保存文件名
  var task = Task(
      Uri.parse('https://golang.org/dl/go1.17.3.src.tar.gz'),
      'downloads/go1.17.3.src.tar.gz',
      
      // 启用多连接下载
      worker: ParallelWorker(),
      
      // 启用日志记录,默认级别为info
      logger: Logger()
  );

  // 设置进度回调函数
  task.onProgress = (prog) {
    // 打印下载进度
    print("Download Progress: ${prog.transferred / prog.total * 100}%");
  };

  // 开始下载任务
  await task.start();

  print("Download Completed!");
}

更多关于Flutter插件buxing的使用_buxing 是一个用于Flutter应用的HTTP文件下载器插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

回到顶部