跳过内容

@capgo/capacitor-后台任务

Expo风格的后台任务,支持Capacitor应用,基于Android WorkManager和iOS BGTaskScheduler

使用 @capgo/capacitor-background-task 当您的 Capacitor 应用需要周期性后台抓取工作,例如同步、缓存刷新、收件箱轮询、分析缓冲或轻量级维护任务时。

该插件遵循 Expo BackgroundTask 的实用功能集,包括带有名称的任务、持久注册、状态检查、注销、开发触发器和 iOS 过期事件。

核心功能

核心功能
  • defineTask - 为一个命名任务注册 JavaScript 回调。
  • registerTaskAsync - 持久化和计划一个周期性任务。
  • unregisterTaskAsync - 取消一个任务的未来运行。
  • isTaskRegisteredAsync - 检查一个任务是否已注册。
  • getRegisteredTasksAsync - 列出当前已注册的任务名称。
  • getPendingTaskRunsAsync - 检查本地任务事件的记录,事件发生在 JavaScript 就绪之前。
  • getStatusAsync - 检查本地后台任务的可用性。
  • triggerTaskWorkerForTestingAsync - 在开发期间立即运行已注册的任务。
  • addExpirationListener - 处理 iOS 过期回调。
  • define, schedule, cancel, statusAsync, 和 finish - 适配各个平台的辅助工具 react-native-background-task.

后台任务不是精确的定时器。Android和iOS根据电池、网络、应用程序使用情况和系统策略决定何时运行预定的工作。

平台原生调度器重要行为
AndroidWorkManager周期性工作的最小间隔为15分钟。
iOSBGTaskSchedulerminimumInterval 是最早开始的日期,而不是保证的节奏。
Web仅用于测试的fallback没有可用的真正的后台调度器。
方法描述
defineTask定义一个命名任务的JavaScript回调。
registerTaskAsync注册一个命名的周期性后台任务。
unregisterTaskAsync取消未来的任务运行。
isTaskRegisteredAsync返回一个任务是否已注册。
getRegisteredTasksAsync已注册任务名称列表。
getPendingTaskRunsAsync等待完成的原生任务事件列表。
getStatusAsync是否支持原生后台调度。
triggerTaskWorkerForTestingAsync注册开发和QA环境下的任务。
addExpirationListener监听iOS过期事件。

真实数据来源

真实数据来源

本参考文档是从 src/definitions.tscapacitor-后台任务.

如果您正在使用 @capgo/capacitor-background-task 来规划原生插件工作,连接它与 使用 @capgo/capacitor-background-task 为原生能力在使用 @capgo/capacitor-background-task 中 Capgo 插件目录 为产品工作流程在 Capgo 插件目录 中 Capacitor 插件由 Capgo 为实现细节在 Capacitor 插件由 Capgo 中 添加或更新插件 为实现细节在添加或更新插件中,并且 Ionic 企业插件替代方案 {"targetLanguage":"Simplified Chinese","pagePath":"/zh/docs/plugins/background-task/","protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"items":[{"text":"为 Ionic 企业插件替代品的产品工作流程"},{"text":"编辑页面"}]}