Flutter插件buxing的使用_buxing 是一个用于Flutter应用的HTTP文件下载器插件
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