패키지, 저장소 및 앱 카테고리 검색

flutter_download_manager 표지
패키지 상세v0.5.5

flutter_download_manager

Flutter 다운로드 매니저는 재시작 가능하고, 병렬 및 배치 다운로드를 지원하는 크로스 플랫폼 파일 다운로더입니다. 또한 다운로드 상태 및 진행률 업데이트에 대한 알림을 받을 수 있습니다

AndroidiOSmacOSWindowsLinux
30일 다운로드
3.6천
좋아요
74
Pub 점수
130

패키지 설치

flutter pub add flutter_download_manager

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter 다운로드 매니저는 중단된 다운로드 재시작, 병렬 및 배치 처리를 지원하는 크로스 플랫폼 패키지입니다. 실시간 진행률 업데이트와 상태 알림을 제공하여 Android, iOS, macOS, Windows, Linux에서 강력한 다운로드 기능이 필요한 앱에 적합합니다. 여러 다운로드를 효율적으로 관리하면서 데이터 무결성과 사용자 피드백을 보장합니다.

사용 사례

  • 배치 파일 다운로드
  • 중단된 다운로드 재개
  • 실시간 진행 추적
  • 백그라운드 다운로드
  • 대용량 파일 전송
  • 오프라인 콘텐츠 캐싱

주요 기능

  • 재시도 가능한 다운로드
  • 병렬 및 배치 다운로드
  • 크로스 플랫폼 지원
  • 진행률 및 상태 콜백
  • 간단한 API 통합
  • 백그라운드 다운로드 처리

적합한 대상

  • 오프라인 콘텐츠가 필요한 앱
  • 미디어 스트리밍 앱
  • 파일 관리 도구
  • 다운로드 가능한 자원을 갖춘 교육용 앱
  • 대량 파일 작업을 지원하는 기업용 애플리케이션

고려 사항

  • Android에서 인터넷 권한이 필요합니다
  • 백그라운드 실행은 플랫폼에 따라 달라질 수 있습니다
  • 큰 다운로드는 배터리와 데이터 사용에 영향을 줄 수 있습니다
  • 다운로드 UI에 대한 사용자 정의가 제한적
  • 내장된 다운로드 대기열 우선순위 없음
  • 플랫폼별 구성이 필요할 수 있습니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Flutter Download Manager

pub package pub points popularity likes |

Overview

Flutter Download Manager is a Cross-Platform file downloader with Parallel and Batch Download support. Manage download tasks by url and be notified of status and their progress. Pause, Cancel, Queue and Resume Downloads.

This package was made as I felt like there are no download managers in flutter, specially with desktop support.

alt Example

Features

  • Manage download tasks by url
  • Ability to notified of status and progress changes
  • Partial Download Feature
  • Queue Downloads
  • Pause, Cancel or Resume Downloads
  • Parallel File Downloads (2 or can change)
  • Support Batch download

Platforms Supported

  • Linux
  • MacOS
  • Windows
  • Android
  • iOS

There are a few caveats about this package:

  • On desktop it saves the file in absolute or relative path.
  • On mobile it saves the file in absolute or relative path, but we should ask/ensure if the app has the required permissions.
  • It does not run in a background process, so when the dart application closes the manager will also shut down.

Getting Started

In your pubspec.yaml file add:

dependencies:
  flutter_download_manager: any

Then, in your code import:

import 'package:flutter_download_manager/flutter_download_manager.dart';

Usage

Please refer to /example folder for a working example.

Simply Download a file
var dl = DownloadManager();
var url = "adasdad.com/asda.sdas";
await dl.addDownload(url, "./test.sdas");

DownloadTask? task = dl.getDownload(url4);

task?.status.addListener(() {
  print(task.status.value);
});

task?.progress.addListener(() {
  print(task.progress.value);
});

await dl.whenDownloadComplete(url4);
Get Download Status
DownloadTask? task = dl.getDownload(url4);

task?.status.addListener(() {
  print(task.status.value);
});
Get Download Progress
DownloadTask? task = dl.getDownload(url4);

task?.progress.addListener(() {
  print(task.progress.value);
});
Await for a task to be complete
DownloadTask? task = dl.getDownload(url4);

await task.whenDownloadComplete();
Cancel a task
var dl = DownloadManager();

dl.cancelDownload(url5);
Pause a task
var dl = DownloadManager();

dl.pauseDownload(url5);
Resume a task
var dl = DownloadManager();

dl.resumeDownload(url5);
Download in Batch
var dl = DownloadManager();

var urls = <String>[];
urls.add(url2);
urls.add(url3);
urls.add(url);

await dl.addDownload(url2, "./test2.ipa");
await dl.addDownload(url3, "./test3.ipa");
await dl.addDownload(url, "./test.ipa");

var downloadProgress = dl.getDownloadProgress(urls);

downloadProgress.addListener(() {
  print(downloadProgress.value);
});

await dl.whenDownloadsComplete(urls);
var dl = DownloadManager();

var urls = <String>[];
urls.add(url2);
urls.add(url3);
urls.add(url);

dl.addBatchDownloads(urls, "./");
Cancel a Batch Download
var dl = DownloadManager();

var urls = <String>[];
urls.add(url6);
urls.add(url5);
urls.add(url);

dl.cancelDownloads(urls);
Get Batch Download Progress
var dl = DownloadManager();

var urls = <String>[];
urls.add(url2);
urls.add(url3);

var downloadProgress = dl.getDownloadProgress(urls);

downloadProgress.addListener(() {
  print(downloadProgress.value);
});
Await for Batch Download to complete
var dl = DownloadManager();

var urls = <String>[];
urls.add(url2);
urls.add(url3);
urls.add(url);

await dl.whenDownloadsComplete(urls);

Future Work

[] Add in Shared Preference to survive app shutdown

DownloadStatus

enum DownloadStatus { queued, downloading, completed, failed, paused, canceled }

카테고리

의존성

의존성 목록 2 개

소스 저장소

이 패키지를 사용하는 프로젝트