flutter_downloader如何使用
我在Flutter项目中集成了flutter_downloader插件,但不太清楚具体如何使用。能否详细说明如何配置AndroidManifest.xml和Info.plist文件?另外想请教下载任务的基本操作流程,比如如何开始、暂停、恢复和取消下载?插件支持并发下载和后台任务吗?遇到下载失败时有哪些常见的错误处理方式?
2 回复
FlutterDownloader 是一个用于在 Flutter 应用中实现文件下载功能的插件。以下是基本使用方法:
-
添加依赖:在
pubspec.yaml文件中添加:dependencies: flutter_downloader: ^1.10.2 -
初始化:在
main()函数中初始化插件:void main() { WidgetsFlutterBinding.ensureInitialized(); FlutterDownloader.initialize(); runApp(MyApp()); } -
下载文件:使用
FlutterDownloader.enqueue()方法:final taskId = await FlutterDownloader.enqueue( url: '文件URL', savedDir: '保存路径', fileName: '文件名', showNotification: true, openFileFromNotification: true, ); -
监听下载进度:通过
FlutterDownloader.registerCallback设置回调函数,处理下载状态和进度。 -
注意事项:
- Android 需要配置存储权限。
- iOS 需在
Info.plist中添加网络权限。
简单几步即可实现文件下载功能!
更多关于flutter_downloader如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter Downloader 是一个用于在 Flutter 应用中实现文件下载功能的插件。以下是基本使用方法:
安装配置
- 在
pubspec.yaml中添加依赖:
dependencies:
flutter_downloader: ^1.11.7
- 配置平台特定设置:
Android - 在 AndroidManifest.xml 添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
iOS - 在 Info.plist 中添加:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
基本使用
import 'package:flutter_downloader/flutter_downloader.dart';
class DownloadExample {
// 初始化
static Future<void> initialize() async {
await FlutterDownloader.initialize(debug: true);
}
// 开始下载
static Future<String?> downloadFile(String url, String savedDir) async {
final taskId = await FlutterDownloader.enqueue(
url: url,
savedDir: savedDir,
showNotification: true,
openFileFromNotification: true,
);
return taskId;
}
// 监听下载进度
static void listenToProgress() {
FlutterDownloader.registerCallback(downloadCallback);
}
@pragma('vm:entry-point')
static void downloadCallback(String id, DownloadTaskStatus status, int progress) {
print('任务ID: $id, 状态: $status, 进度: $progress%');
}
}
常用方法
FlutterDownloader.enqueue()- 开始下载FlutterDownloader.loadTasks()- 获取所有下载任务FlutterDownloader.cancel()- 取消下载FlutterDownloader.remove()- 删除任务FlutterDownloader.open()- 打开已下载文件FlutterDownloader.retry()- 重试失败的任务
注意事项
- 确保应用有存储权限
- iOS 需要配置后台下载能力
- 使用前务必调用
initialize()方法 - 回调函数需要使用
@pragma('vm:entry-point')注解
这是一个基础的下载管理器实现,适合大多数文件下载需求。

