乐于分享
好东西不私藏

鸿蒙Flutter插件精选:flutter_downloader_ohos

鸿蒙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