パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.2.0

workmanager_web

バックグラウンドタスク実行のために、Service Worker と Web Worker を使用した作業マネージャーの実験的Web実装。

Web
30日間ダウンロード
19.3万
いいね数
1
Pub ポイント
140

パッケージをインストール

flutter pub add workmanager_web

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

workmanager_web は、workmanager パッケージの実験的な Web 実装を提供し、Service Workers および Web Workers を使用して Flutter Web アプリでバックグラウンドタスクを実行できるようにします。アプリが実際に使用されていない場合でも、タスクのスケジューリングと実行が可能になり、ネイティブなバックグラウンド処理機能を模倣します。このパッケージは、従来のバックグラウンド実行が制限される Web 環境での定期的および一時的なタスクのサポートを目的としています。

用途

  • 定期的なデータ同期のスケジューリング
  • アプリの終了後にバックグラウンドタスクを実行する
  • プッシュ通知処理の実装
  • UI をブロッキングせずに長時間実行される操作を実行する
  • オフライン優先のアプリケーションをサポートする

主な機能

  • Service Worker の統合
  • Web Worker を活用したタスク実行
  • 繰り返しと一時的なタスクスケジューリング
  • 実験的なウェブ互換性
  • 最小の実行時オーバーヘッド

適している対象

  • バックグラウンドタスクが必要なFlutter Web開発者
  • スケジュールされたメンテナンスを必要とするアプリ
  • オフライン対応のウェブアプリケーション
  • 開発者がWebでバックグラウンドワークフローをテストする

注意事項

  • 実験的状態で、不安定な可能性あり
  • Service Worker のブラウザサポートが限定的
  • すべてのブラウザで実行タイミングが保証されていません
  • 本番環境ではHTTPSが必要です
  • 重要なタイムセンシティブな操作には適していません

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Flutter Workmanager

pub package pub points likes popularity GitHub Workflow Status license

Execute Dart code in the background, even when your app is closed (Android and iOS). On macOS, background tasks run while the app is running or backgrounded and the Mac is awake. Perfect for data sync, file uploads, and periodic maintenance tasks.

⚠️ Experimental web support now exists via workmanager_web (Service Worker + Web Worker based background execution). See the Web (experimental) page and the package README for honest limitations and how to test it in Chrome.

📖 Documentation

Get started with background tasks in Flutter:

→ Quick Start Guide - Installation and setup

→ API Documentation - Complete Dart API reference

→ Debugging Guide - Troubleshooting help

→ Troubleshooting Guide - Why tasks stop after app close (OEM battery optimization, constraints, verification)

🎯 Use Cases

Background tasks are perfect for:

  • Sync data from API - Keep your app's data fresh
  • Upload files in background - Reliable file uploads
  • Clean up old data - Remove old files and cache
  • Fetch notifications - Check for new messages
  • Database maintenance - Optimize and clean databases

⏱ Long-Running Tasks (Android)

For work that takes longer than the regular background execution window (bulk uploads/downloads, ML processing), Android tasks can run as a foreground service with a persistent notification. Pass a foregroundServiceConfig to registerOneOffTask or registerPeriodicTask:

await Workmanager().registerOneOffTask(
  "upload-task",
  "upload_files",
  foregroundServiceConfig: ForegroundServiceConfig(
    notificationTitle: "Uploading files",
    notificationText: "Your files are being uploaded",
  ),
);

See the Quick Start guide for details and platform caveats.

🛑 Cancelling Running Work (Android)

cancelByUniqueName, cancelByTag and cancelAll stop the WorkManager worker immediately, but the Dart callback that is currently running keeps executing unless it reacts to the stop. Pass an onTaskStopped handler to executeTask inside your callbackDispatcher to be notified when a running task is stopped before it finishes:

@pragma('vm:entry-point')
void callbackDispatcher() {
  Workmanager().executeTask(
    (taskName, inputData) async {
      return true;
    },
    onTaskStopped: (taskName, stopReason) async {
      // Mark the task as cancelled / persist state, then return promptly.
    },
  );
}

The handler receives the task name and the WorkManager stop reason (cancelledByApp, timeout, preempt, ...); on Android < 12 the reason is StopReason.unknown. Android-only — iOS has no way to stop a running task. See the Customization guide for details.

🐛 Issues & Support

🚀 Example App

See the example folder for a complete working demo with all task types and platform configurations.

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。

ランキング