@capgo/capacitor-background-task

中文文档
8.1.12发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4万

用于定期背景的 Capacitor 插件获取关于iOS和Android的任务.

中文使用文档
文档目录29 节
  1. *免费开始*
  2. 主要特点
  3. 它会做什么
  4. 限制
  5. 兼容性
  6. 安装
  7. iOS 设置
  8. 使用量
  9. 测试
  10. 反应本地兼容性
  11. 示例应用
  12. API 密码
  13. 定义任务(...)
  14. 注册任务Async(...)
  15. 未注册的任务Async (...)
  16. 是任务注册的 Async (...)
  17. 获得注册的任务Async ()
  18. 获取“ 指定任务” Async ()
  19. 获取状态
  20. 触发工作任务测试
  21. 添加扩展倾听器(...)
  22. 定义(...)
  23. 调度(...)
  24. 取消( )
  25. 状态 Async ()
  26. 结束(...)
  27. 接口
  28. 类型异名
  29. 数字

@ capgo/ 电容器- 后地任务

在 iOS 和 Android 上运行您的 Capacitor app 中定期的背景任务, 并带有在 app 重新启动中幸存的命名任务 。 在应用程序未打开时同步数据或刷新内容 .

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-background-task 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 加入@capgo/capor-background-task 到我的Capacitor app,并把它连接起来。" 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-background-task for Capacitor apps

主要特点

  • 命名任务数字 : registerTaskAsync() 财务报告和审定财务报表 unregisterTaskAsync() 选项 minimumInterval 财务报告和审定财务报表 requiresNetwork。 。 。 .
  • 状态数字 : isTaskRegisteredAsync(), (中文(简体) ), getRegisteredTasksAsync() 财务报告和审定财务报表 getStatusAsync() 报告已安排和可用的情况.
  • 运行失败数字 : getPendingTaskRunsAsync() 返回在 JavaScript 准备好之前在本地记录.
  • 测试数字 : triggerTaskWorkerForTestingAsync() 在开发过程中立即运行所有已登记的任务.
  • 熟悉的 API: 博览会背景 任务样式 API + React 原生背景任务兼容 schedule(), (中文(简体) ), cancel() 财务报告和审定财务报表 finish()。 。 。 .
  • 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-22. iOS使用"背景任务",Android使用"WorkManager". Web是根茎.

它会做什么

  • 与 WorkManager 定期安排关于Android的背景工作.
  • 用 BGTaskScheduler 来排程 iOS 上的背景处理 .
  • 支持多个命名任务 minimumInterval 几分钟后.
  • Emits 保留任务事件, 因此任务运行在 JavaScript 准备好之前可以被排出 .
  • 提供小型 react-native-background-task 相容的 API : define, (中文(简体) ), schedule, (中文(简体) ), cancel, (中文(简体) ), statusAsync,以及 finish。 。 。 .

限制

  • 背景任务不是精确的定时器 。 Android和iOS决定工作实际运行时间.
  • Android执行15分最小间隔.
  • iOS可能基于电池,网络和用户行为进行大量延迟运行.
  • iOS背景任务不运行于模拟器;使用物理设备.
  • 此插件无法在背景中无限期运行应用程序 .

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1应要求

政策:

  • 新的插件从版本开始 8.0.0 (8号电站基线).
  • 对更古老的Capacitor主机的后向相容性按需支持.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-background-task` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-background-task
npx cap sync

iOS 设置

添加背景处理模式和允许的任务标识符 ios/App/App/Info.plist数字 :

<key>UIBackgroundModes</key>
<array>
  <string>processing</string>
</array>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
  <string>app.capgo.backgroundtask.processing</string>
</array>

使用量

定义模块范围的任务,以便在操作系统启动应用程序后立即提供.

import { BackgroundTask, BackgroundTaskResult } from '@capgo/capacitor-background-task';

const SYNC_TASK = 'sync-offline-data';

BackgroundTask.defineTask(SYNC_TASK, async () => {
  try {
    await fetch('https://example.com/sync', { method: 'POST' });
    return BackgroundTaskResult.Success;
  } catch {
    return BackgroundTaskResult.Failed;
  }
});

await BackgroundTask.registerTaskAsync(SYNC_TASK, {
  minimumInterval: 30,
  requiresNetwork: true,
});

测试

await BackgroundTask.triggerTaskWorkerForTestingAsync();

反应本地兼容性

import { BackgroundTask } from '@capgo/capacitor-background-task';

BackgroundTask.define(async () => {
  await fetch('https://example.com/sync', { method: 'POST' });
});

await BackgroundTask.schedule({
  period: 1800,
});

示例应用

这个 example-app/ 文件夹通过 file:.. 用于验证开发期间的本地接线.

API 密码

定义任务(...)

defineTask(taskName: string, callback: BackgroundTaskCallback) => void

定义 JavaScript 回调任务 。 将此调用到模块/ 全球范围 .

参数类型
taskNamestring
callbackBackgroundTaskCallback

注册任务Async(...)

registerTaskAsync(taskName: string, options?: BackgroundTaskOptions | undefined) => Promise<void>

注册一个命名的定期背景任务 .

参数类型
taskNamestring
optionsBackgroundTaskOptions

未注册的任务Async (...)

unregisterTaskAsync(taskName: string) => Promise<void>

取消一个命名的周期性背景任务 .

参数类型
taskNamestring

是任务注册的 Async (...)

isTaskRegisteredAsync(taskName: string) => Promise<boolean>

检查是否注册了命名的任务 .

参数类型
taskNamestring

回返情况: Promise<boolean>


获得注册的任务Async ()

getRegisteredTasksAsync() => Promise<string[]>

返回所有已注册的任务名称 .

回返情况: Promise<string[]>


获取“ 指定任务” Async ()

getPendingTaskRunsAsync() => Promise<BackgroundTaskEvent[]>

返回未完成的任务运行在 JavaScript 准备好之前的本地记录 .

回返情况: Promise<BackgroundTaskEvent[]>


获取状态

getStatusAsync() => Promise<BackgroundTaskStatus>

返回本地背景任务可用性 .

回返情况: Promise<BackgroundTaskStatus>


触发工作任务测试

triggerTaskWorkerForTestingAsync() => Promise<boolean>

立即触发所有已登记的任务进行开发/测试.

回返情况: Promise<boolean>


添加扩展倾听器(...)

addExpirationListener(listener: (event: BackgroundTaskEvent) => void) => Promise<PluginListenerHandle>

听iOS过期回调.

参数类型
listener(event: BackgroundTaskEvent) => void

回返情况: Promise<PluginListenerHandle>


定义(...)

define(callback: BackgroundTaskCallback) => void

React 原生背景任务相容的单任务定义助手.

参数类型
callbackBackgroundTaskCallback

调度(...)

schedule(options?: ReactNativeBackgroundTaskOptions | undefined) => Promise<void>

反应本地背景任务相容的单任务调度器 .

参数类型
optionsReactNativeBackgroundTaskOptions

取消( )

cancel() => Promise<void>

React 原生背景任务相容的单任务取消帮助器.


状态 Async ()

statusAsync() => Promise<ReactNativeBackgroundTaskStatus>

反应本地背景任务相容状态助手 .

回返情况: Promise<ReactNativeBackgroundTaskStatus>


结束(...)

finish(result?: BackgroundTaskResult | undefined) => Promise<void>

反应本地背景任务相容的完成帮助器 。 普通博览会风格 调用自动完成 .

参数类型
resultBackgroundTaskResult

接口

背景任务活动

当本地调度要求 JavaScript 执行任务时, 有效载荷已释放 .

Prop类型说明
taskNamestring名称传递给注册 TaskAsync .
taskIdstring本地运行标识符 。 JavaScript 包装器在定义的回调解析后自动完成.
timestampnumber运行时的原生时间戳.
testboolean触发任务测试时为真 .

背景任务选项

定期登记背景任务的选项.

Prop类型说明
minimumIntervalnumber任务运行之间的分钟间隔不准确 。 默认为720分. Android执行最少15分钟. iOS视此为最早的起步日期,可能运行较晚.
requiresNetworkboolean运行本地调度器前需要活动网络 。 默认为真.

插件听筒

Prop类型
remove() => Promise<void>

反活动背景任务选项

反应本地背景任务兼容调度选项 .

Prop类型说明
periodnumber每次行刑时的欲望秒 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}至少一分钟.
timeoutnumberAndroid-仅限超时提示保留了API兼容性.

ReactNativeBackground 任务状态

反应原生背景任务相容状态有效载荷.

Prop类型说明
availableboolean应用程序是否有背景任务可用 .
unavailableReasonstring理由当没有.

类型异名

背景任务调用

为背景任务执行的函数 .

(event: BackgroundTaskEvent): void | BackgroundTaskResult | Promise<void | BackgroundTaskResult>

数字

背景任务结果

成员数值说明
Success1任务成功完成 .
Failed2任务失败 .

背景任务状态

成员数值说明
Restricted1背景任务时间安排没有或受到限制.
Available2背景任务时间安排.

版本与发布记录

@capgo/capacitor-background-task 共发布 13 个版本,首次发布于 2026/05/12;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.1.12latest2026/10/1525 天前
8.1.112026/10/1327 天前
8.1.102026/10/091 个月前
8.1.92026/10/081 个月前
8.1.82026/09/161 个月前
8.1.72026/07/113 个月前

关于 @capgo/capacitor-background-task 的常见问题

@capgo/capacitor-background-task 是什么?

用于定期背景的 Capacitor 插件获取关于iOS和Android的任务.

如何安装 @capgo/capacitor-background-task?

在项目目录运行 npm install @capgo/capacitor-background-task,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-background-task 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-background-task 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-background-task 可以商用吗?

@capgo/capacitor-background-task 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-background-task 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-background-task 在 2026/10/09 – 2026/11/07 这 30 天内被下载 40,293 次,日均约 1,343 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-background-task 还在维护吗?

最新版本 8.1.12 发布于 2026/10/15(25 天前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。