跳转到正文

@capgo/capacitor-updater

适用于 capacitor 应用的 Live update。

Capgo live updates 并不局限于 Capacitor。你可以在同系列客户端插件中使用相同的后端和 CLI:

@capgo/capacitor-updater 发布 JavaScript bundle 更新 无需等待应用商店审核,即可将更新推送到生产环境的 Capacitor 应用中。支持在后台下载已签名的 bundle,通过 channels 和延迟规则控制发布节奏,并在发生问题时进行回滚。 notifyAppReady() 未在配置的范围内调用 appReadyTimeout.

典型场景:修复生产环境 Bug、按 channel 进行分阶段 Beta 测试、UI A/B 测试,以及紧急回滚至内置 bundle。

平台支持
iOS是
Android是
Web 端Bundles 适用于原生壳中的 WebView 层,而非托管的静态网站

Cordova 和 Electron 客户端使用上方链接的同级插件,后端同样是 Capgo。

  • notifyAppReady - 通知原生层 JavaScript 已成功初始化。
  • setUpdateUrl - 在运行时动态设置应用的更新 URL。
  • setStatsUrl - 在运行时动态设置应用的统计 URL。
  • setChannelUrl - 在运行时动态设置应用的 channel URL。
方法描述
notifyAppReady通知原生层 JavaScript 已成功初始化。
setUpdateUrl在运行时动态设置应用的更新 URL。
setStatsUrl在运行时动态设置应用的统计 URL。
setChannelUrl在运行时动态设置应用的 channel URL。
download从提供的 URL 下载新 bundle 以备后续安装。
next设置在应用进入后台或重启时激活下一个 bundle。
set设置当前 bundle 并立即重载应用。
delete从本地存储中删除 bundle 以释放磁盘空间。
setBundleError在手动更新模式下,手动将 bundle 标记为失败/错误。
list获取应用中所有已下载到本地的 bundle。
reset将应用重置为已知的稳定 bundle。
current获取当前正在运行的 bundle 信息。
reload手动重载应用以应用待处理的更新。
setMultiDelay配置应用待处理更新前必须满足的条件。
cancelDelay取消所有延迟条件并立即应用待处理的更新。
getLatest检查更新服务器以获取最新的 bundle 版本。
setChannel为该设备设置本地运行时更新通道。这不会创建 dashboard/API 设备覆盖。
unsetChannel移除设备的通道分配并返回默认通道。
getChannel获取当前分配给该设备的通道。
listChannels获取该设备可自主分配的所有通道列表。
setCustomId为该设备设置自定义标识符。
getBuiltinVersion获取内置的 bundle 版本(即随 Native Build 应用发布的原始版本)。
getDeviceId获取该设备唯一的、保护隐私的标识符。
getPluginVersion获取应用中安装的 Capacitor Updater plugin 版本。
isAutoUpdateEnabled检查当前是否已启用自动更新。
removeAllListeners移除所有已注册到该 plugin 的事件监听器。
addListener监听 App 中的 bundle download 事件。在下载开始、下载中及下载完成后各触发一次。这将返回下载过程中的所有进度百分比。
addListener监听无需更新事件,适用于您希望每次启动 App 时都进行强制检查的场景。
addListener监听可用更新事件,适合每次应用启动时都要强制检查更新的场景。
addListener监听 downloadComplete 事件。
addListener监听 breaking 更新事件:当后端将更新标记为与当前应用不兼容时触发。其 payload 与旧版 majorAvailable 监听器相同。
addListener监听应用内的 major 更新事件,当 major 更新因设置 disableAutoUpdateBreaking 被阻止时会通知你。
addListener监听应用内的更新失败事件,用于告知下次应用启动时更新安装失败。
addListener监听应用内的 set 事件,用于告知 bundle 已成功应用。该事件会在原生层保留,直到 JavaScript 消费它,因此如果应用在监听器挂载前重新加载,最后一次待处理的 set 事件会在监听器订阅后送达。
addListener监听应用内的 set next 事件,用于告知某个 bundle 已被排队为下一个待安装的 bundle。
addListener监听应用内的下载失败事件,用于告知 bundle 下载失败。
addListener监听应用内的 reload 事件,用于告知重新加载已发生。
addListener监听应用内的 app ready 事件,用于告知应用已准备就绪。该事件会在原生层保留,直到 JavaScript 消费它,因此即使监听器在应用启动较晚时才挂载,重新加载后它仍能送达。
addListener监听 channel 私有事件,在尝试设置不允许设备自行分配的 channel 时触发。
addListener监听 Android 上 flexible update 的状态变化。
isAutoUpdateAvailable检查 auto-update 功能是否可用(未被自定义服务器配置禁用)。
getNextBundle获取已排队、将在下次 reload 时激活的 bundle 信息。
getFailedUpdate获取最近一次加载失败的 bundle 信息。
setShakeMenu启用或禁用用于调试和测试的摇一摇手势菜单。
isShakeMenuEnabled检查摇一摇手势调试菜单当前是否已启用。
setShakeChannelSelector在运行时启用或禁用摇一摇 channel 选择器。
isShakeChannelSelectorEnabled检查摇一摇 channel 选择器当前是否已启用。
getAppId获取当前配置的、用于与 update server 通信的 App ID。
setAppId动态修改用于与 update server 通信的 App ID。
getAppUpdateInfo获取应用在 App Store 或 Play Store 的上架状态信息。
openAppStore在 App Store 或 Play Store 中打开应用页面。
performImmediateUpdate在 Android 上执行立即应用内更新。
startFlexibleUpdate在 Android 上启动灵活的应用内更新。
completeFlexibleUpdate在 Android 上完成灵活的应用内更新。

此参考文档同步自 src/definitions.ts 中的 capacitor-updater.

从 @capgo/capacitor-updater 继续

标题为“从 @capgo/capacitor-updater 继续”

如果你正在使用 @capgo/capacitor-updater 要规划原生插件工作,请将其与 使用 @capgo/capacitor-updater 用于“使用 @capgo/capacitor-updater”中的原生能力, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 查看由 Capgo 提供的 Capacitor 插件中的实现细节, 添加或更新插件 关于“添加或更新插件”中的实现细节,以及 Ionic Enterprise 插件替代方案 关于“Ionic Enterprise 插件替代方案”中的产品工作流。