鸿蒙Flutter插件精选:flutter_downloader_ohos
本系列聚焦 OpenHarmony 平台上的优秀 Flutter 插件,帮助开发者快速找到适配鸿蒙的第三方库。
插件简介
flutter_downloader_ohos 是 flutter_downloader[1] 在 OpenHarmony 平台的移植版本,由社区开发者 @shaohushuo 开发并维护。
它是一个联合插件,需与原版 flutter_downloader 配合使用,用法与原版完全一致,效果对标 iOS / Android 平台。
核心能力:
-
后台文件下载管理 -
下载进度实时回调 -
任务的暂停、恢复、取消、重试 -
下载文件直接打开
安装
在 pubspec.yaml 中同时添加原版和鸿蒙适配版:
dependencies:
flutter_downloader: ^1.12.0
flutter_downloader_ohos: ^1.12.0
然后执行:
flutter pub get
就这么简单,不需要额外配置。
快速上手
初始化
在应用启动时调用 initialize,这是必须的第一步:
await FlutterDownloader.initialize();
创建下载任务
final taskId = await FlutterDownloader.enqueue(
url: 'https://example.com/file.pdf',
savedDir: '/path/to/save',
showNotification: true,
);
监听下载进度
FlutterDownloader.registerCallback((
String id,
DownloadTaskStatus status,
int progress,
) {
print('任务: $id, 状态: $status, 进度: $progress%');
});
常用操作
// 暂停
await FlutterDownloader.pause(taskId);
// 恢复
await FlutterDownloader.resume(taskId);
// 取消
await FlutterDownloader.cancel(taskId);
// 取消全部
await FlutterDownloader.cancelAll();
// 重试
await FlutterDownloader.retry(taskId);
// 打开已下载文件
await FlutterDownloader.open(taskId);
查询任务列表
// 获取所有任务
final tasks = await FlutterDownloader.loadTasks();
// SQL 查询
final tasks = await FlutterDownloader.loadTasksWithRawQuery(
query: "SELECT * FROM task WHERE status = 2",
);
适用场景
无论是下载文档、图片、音视频还是 APK 安装包,flutter_downloader_ohos 都能为你的鸿蒙 Flutter 应用提供稳定可靠的后台下载能力。
项目地址: github.com/shaohushuo/flutter_downloader_ohos[2]
协议: MIT,欢迎贡献代码 🎉
引用链接
[1]flutter_downloader: https://pub.flutter-io.cn/packages/flutter_downloader
[2]flutter_downloader_ohos: https://github.com/shaohushuo/flutter_downloader_ohos
夜雨聆风